libsel4vm: Pass vm handle to vm_guest_add_iospace Updated the parameters to the interface function 'vm_guest_add_iospace'. This change substitutes the vspace parameter with the VM object. This allows us to abstract the internals of the VM datastructure making the interface easier to use.
diff --git a/libsel4vm/include/sel4vm/guest_iospace.h b/libsel4vm/include/sel4vm/guest_iospace.h index dcc48b6..407eca3 100644 --- a/libsel4vm/include/sel4vm/guest_iospace.h +++ b/libsel4vm/include/sel4vm/guest_iospace.h
@@ -15,5 +15,6 @@ #include <sel4/sel4.h> #include <vspace/vspace.h> #include <vka/vka.h> +#include <sel4vm/guest_vm.h> -int vm_guest_add_iospace(vspace_t *loader, vspace_t *vspace, seL4_CPtr iospace); +int vm_guest_add_iospace(vm_t *vm, vspace_t *loader, seL4_CPtr iospace);
diff --git a/libsel4vm/src/guest_vspace.c b/libsel4vm/src/guest_vspace.c index 1cd1365..dea5254 100644 --- a/libsel4vm/src/guest_vspace.c +++ b/libsel4vm/src/guest_vspace.c
@@ -142,8 +142,8 @@ #endif } -int vm_guest_add_iospace(vspace_t *loader, vspace_t *vspace, seL4_CPtr iospace) { - struct sel4utils_alloc_data *data = get_alloc_data(vspace); +int vm_guest_add_iospace(vm_t *vm, vspace_t *loader, seL4_CPtr iospace) { + struct sel4utils_alloc_data *data = get_alloc_data(&vm->mem.vm_vspace); guest_vspace_t *guest_vspace = (guest_vspace_t *) data; assert(!guest_vspace->done_mapping);