libsel4utils: Split up 'get_vspace_with_map'

Split up the functionality of 'sel4utils_get_vspace_with_map'
with the bootstrap intitialisation parts being moved into a
private helper function 'get_vspace_bootstrap'. This allows other
functions to modify specific fields in the
'sel4utils_alloc_data_t' token after it has been set to a default
state.
diff --git a/libsel4utils/src/vspace/bootstrap.c b/libsel4utils/src/vspace/bootstrap.c
index 99bf5d9..0fd4de5 100644
--- a/libsel4utils/src/vspace/bootstrap.c
+++ b/libsel4utils/src/vspace/bootstrap.c
@@ -285,8 +285,23 @@
     return alloc_and_map(vspace, size);
 }
 
-/* Interface functions */
 
+static int get_vspace_bootstrap(vspace_t *loader, vspace_t *new_vspace, sel4utils_alloc_data_t *data,
+                                sel4utils_map_page_fn map_page)
+{
+    data->bootstrap = loader;
+    /* create the top level page table from the loading vspace */
+    data->top_level = vspace_new_pages(loader, seL4_AllRights, sizeof(vspace_mid_level_t) / PAGE_SIZE_4K, seL4_PageBits);
+    if (data->top_level == NULL) {
+        return -1;
+    }
+    memset(data->top_level, 0, sizeof(vspace_mid_level_t));
+
+    common_init_post_bootstrap(new_vspace, map_page);
+    return 0;
+}
+
+/* Interface functions */
 int sel4utils_get_vspace_with_map(vspace_t *loader, vspace_t *new_vspace, sel4utils_alloc_data_t *data,
                                   vka_t *vka, seL4_CPtr vspace_root,
                                   vspace_allocated_object_fn allocated_object_fn, void *allocated_object_cookie, sel4utils_map_page_fn map_page)
@@ -297,18 +312,7 @@
         return -1;
     }
 
-    data->bootstrap = loader;
-
-    /* create the top level page table from the loading vspace */
-    data->top_level = vspace_new_pages(loader, seL4_AllRights, sizeof(vspace_mid_level_t) / PAGE_SIZE_4K, seL4_PageBits);
-    if (data->top_level == NULL) {
-        return -1;
-    }
-    memset(data->top_level, 0, sizeof(vspace_mid_level_t));
-
-    common_init_post_bootstrap(new_vspace, map_page);
-
-    return 0;
+    return get_vspace_bootstrap(loader, new_vspace, data, map_page);
 }
 
 int sel4utils_get_vspace(vspace_t *loader, vspace_t *new_vspace, sel4utils_alloc_data_t *data,