summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2016-02-26 16:12:20 +0000
committermarcel <marcel@FreeBSD.org>2016-02-26 16:12:20 +0000
commit4e12843d2196ce04800e35c683e148a0cefeed73 (patch)
tree6e671a16779d40c6c108f59b76283872f767c0ec
parente2b10f22275d5cf513c95bad65cc08a5a177fe29 (diff)
downloadFreeBSD-src-4e12843d2196ce04800e35c683e148a0cefeed73.zip
FreeBSD-src-4e12843d2196ce04800e35c683e148a0cefeed73.tar.gz
Support version 4 of the userboot structure by implementing the
vm_set_register() and vm_set_desc() callbacks.
-rw-r--r--usr.sbin/bhyveload/bhyveload.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/usr.sbin/bhyveload/bhyveload.c b/usr.sbin/bhyveload/bhyveload.c
index badf5f4..60598b5 100644
--- a/usr.sbin/bhyveload/bhyveload.c
+++ b/usr.sbin/bhyveload/bhyveload.c
@@ -542,6 +542,21 @@ cb_getenv(void *arg, int num)
return (NULL);
}
+static int
+cb_vm_set_register(void *arg, int vcpu, int reg, uint64_t val)
+{
+
+ return (vm_set_register(ctx, vcpu, reg, val));
+}
+
+static int
+cb_vm_set_desc(void *arg, int vcpu, int reg, uint64_t base, u_int limit,
+ u_int access)
+{
+
+ return (vm_set_desc(ctx, vcpu, reg, base, limit, access));
+}
+
static struct loader_callbacks cb = {
.getc = cb_getc,
.putc = cb_putc,
@@ -571,6 +586,10 @@ static struct loader_callbacks cb = {
.getmem = cb_getmem,
.getenv = cb_getenv,
+
+ /* Version 4 additions */
+ .vm_set_register = cb_vm_set_register,
+ .vm_set_desc = cb_vm_set_desc,
};
static int
@@ -765,7 +784,7 @@ main(int argc, char** argv)
addenv("smbios.bios.vendor=BHYVE");
addenv("boot_serial=1");
- func(&cb, NULL, USERBOOT_VERSION_3, ndisks);
+ func(&cb, NULL, USERBOOT_VERSION_4, ndisks);
free(loader);
return (0);
OpenPOWER on IntegriCloud