diff options
author | marcel <marcel@FreeBSD.org> | 2016-02-26 16:12:20 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2016-02-26 16:12:20 +0000 |
commit | 4e12843d2196ce04800e35c683e148a0cefeed73 (patch) | |
tree | 6e671a16779d40c6c108f59b76283872f767c0ec /usr.sbin/bhyveload | |
parent | e2b10f22275d5cf513c95bad65cc08a5a177fe29 (diff) | |
download | FreeBSD-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.
Diffstat (limited to 'usr.sbin/bhyveload')
-rw-r--r-- | usr.sbin/bhyveload/bhyveload.c | 21 |
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); |