@@ -179,9 +179,12 @@ let with_intf f =
handle := Some h;
f h
-external domain_create: handle -> domctl_create_config -> domid
+external domain_create_stub: handle -> domid -> domctl_create_config -> domid
= "stub_xc_domain_create"
+let domain_create handle ?(domid=0) config =
+ domain_create_stub handle domid config
+
external domain_sethandle: handle -> domid -> string -> unit
= "stub_xc_domain_sethandle"
@@ -143,8 +143,8 @@ val get_handle: unit -> handle option
* would invalidate the handle that with_intf passes to its argument. *)
val close_handle: unit -> unit
-external domain_create : handle -> domctl_create_config -> domid
- = "stub_xc_domain_create"
+val domain_create: handle -> ?domid:int -> domctl_create_config -> domid
+
external domain_sethandle : handle -> domid -> string -> unit = "stub_xc_domain_sethandle"
external domain_max_vcpus : handle -> domid -> int -> unit
= "stub_xc_domain_max_vcpus"
@@ -175,9 +175,9 @@ static unsigned int ocaml_list_to_c_bitmap(value l)
return val;
}
-CAMLprim value stub_xc_domain_create(value xch, value config)
+CAMLprim value stub_xc_domain_create(value xch, value wanted_domid, value config)
{
- CAMLparam2(xch, config);
+ CAMLparam3(xch, wanted_domid, config);
CAMLlocal2(l, arch_domconfig);
/* Mnemonics for the named fields inside domctl_create_config */
@@ -191,7 +191,7 @@ CAMLprim value stub_xc_domain_create(value xch, value config)
#define VAL_MAX_MAPTRACK_FRAMES Field(config, 7)
#define VAL_ARCH Field(config, 8)
- uint32_t domid = 0;
+ uint32_t domid = Int_val(wanted_domid);
int result;
struct xen_domctl_createdomain cfg = {
.ssidref = Int32_val(VAL_SSIDREF),