HVM SMBIOS v2 3/5
PATCH 1/1 HVM SMBIOS v2 3/5
This patch adds the UUID as a parameter for the call to xc_hvm_create in
xend.
Add UUID as a parameter for HVM domain creation.
Signed-off-by Andrew D. Ball <[email protected]>
tools/python/xen/lowlevel/xc/xc.c +22 -4
@@ -371,18 +371,35 @@int pae =0 ;int acpi =0 ;int apic =0 ; +PyObject *uuid_obj =NULL ; +uint8_t uuid[16 ];unsigned long store_mfn =0 ; +int i; +PyObject *tmp =NULL ;static char *kwd_list[] = {"dom" ,"store_evtchn" ,"memsize" ,"image" ,"vcpus" ,"pae" ,"acpi" ,"apic" , +"uuid" ,NULL }; -if ( !PyArg_ParseTupleAndKeywords (args, kwds,"iiisiiii" , kwd_list, +if ( !PyArg_ParseTupleAndKeywords (args, kwds,"iiisiiiiO" , kwd_list, &dom, &store_evtchn, &memsize, - &image, &vcpus, &pae, &acpi, &apic) ) -return NULL ; + &image, &vcpus, &pae, &acpi, &apic, + &uuid_obj) ) +return NULL ; + +/* convert the UUID array from Python to C if possible */ +if (!PySequence_Check (uuid_obj) ||PySequence_Length (uuid_obj) !=16 ) +return NULL ; +for (i =0 ; i <16 ; i++) { + tmp =PySequence_GetItem (uuid_obj, i); +if (!PyInt_Check (tmp)) +return NULL ; + uuid[i] = (uint8_t )PyInt_AsLong (tmp); + }if (xc_hvm_build (self->xc_handle, dom, memsize, image, - vcpus, pae, acpi, apic, store_evtchn, &store_mfn) !=0 ) + vcpus, pae, acpi, apic, store_evtchn, &store_mfn, + uuid) !=0 )return PyErr_SetFromErrno (xc_error);return Py_BuildValue ("{s:i}" ,"store_mfn" , store_mfn);
@@ -1050,6 +1067,7 @@" dom [int]: Identifier of domain to build into.\n" " image [str]: Name of HVM loader image file.\n" " vcpus [int, 1]: Number of Virtual CPUS in domain.\n\n" +" uuid [list of 16 ints]: UUID of the domain.\n\n" "Returns: [int] 0 on success; -1 on error.\n" }, { "bvtsched_global_set",
tools/python/xen/xend/image.py +13 -1
@@ -224,6 +224,16 @@ def buildDomain(self): store_evtchn = self.vm.getStorePort() + + # convert the DCE formatted UUID string to an array + # of 16 integers + uuid_str = self.vm.info['uuid'] + uuid_str = uuid_str.replace('-','') + + uuid_arr = [] + + for i in range(0,32,2): + uuid_arr.append(int(uuid_str[i:i+2], 16)) log.debug("dom = %d", self.vm.getDomid()) log.debug("image = %s", self.kernel)
@@ -233,6 +243,7 @@ log.debug("pae = %d", self.pae) log.debug("acpi = %d", self.acpi) log.debug("apic = %d", self.apic) + log.debug("uuid = %s", uuid_arr) self.register_shutdown_watch()
@@ -243,7 +254,8 @@ vcpus = self.vm.getVCpuCount(), pae = self.pae, acpi = self.acpi, - apic = self.apic) + apic = self.apic, + uuid = uuid_arr) # Return a list of cmd line args to the device models based on the # xm config file
_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel