Index: xen-3.2.1-testing/tools/python/xen/lowlevel/xc/xc.c =================================================================== --- xen-3.2.1-testing.orig/tools/python/xen/lowlevel/xc/xc.c +++ xen-3.2.1-testing/tools/python/xen/lowlevel/xc/xc.c @@ -638,14 +638,14 @@ static PyObject *pyxc_hvm_build(XcObject int i; #endif char *image; - int memsize, vcpus = 1, acpi = 0, apic = 1; + int memsize, vcpus = 1, acpi = 0, apic = 1, extid = 0; static char *kwd_list[] = { "domid", - "memsize", "image", "vcpus", "acpi", + "memsize", "image", "vcpus", "extid", "acpi", "apic", NULL }; - if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iis|iii", kwd_list, + if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iis|iiii", kwd_list, &dom, &memsize, - &image, &vcpus, &acpi, &apic) ) + &image, &vcpus, &extid, &acpi, &apic) ) return NULL; if ( xc_hvm_build(self->xc_handle, dom, memsize, image) != 0 ) @@ -670,6 +670,7 @@ static PyObject *pyxc_hvm_build(XcObject va_hvm->checksum = -sum; munmap(va_map, XC_PAGE_SIZE); #endif + xc_set_hvm_param(self->xc_handle, dom, HVM_PARAM_EXTEND_HYPERVISOR, extid); return Py_BuildValue("{}"); } Index: xen-3.2.1-testing/tools/python/xen/xend/XendConfig.py =================================================================== --- xen-3.2.1-testing.orig/tools/python/xen/xend/XendConfig.py +++ xen-3.2.1-testing/tools/python/xen/xend/XendConfig.py @@ -138,6 +138,7 @@ XENAPI_PLATFORM_CFG_TYPES = { 'monitor': int, 'nographic': int, 'pae' : int, + 'extid' : int, 'rtc_timeoffset': int, 'serial': str, 'sdl': int, Index: xen-3.2.1-testing/tools/python/xen/xend/image.py =================================================================== --- xen-3.2.1-testing.orig/tools/python/xen/xend/image.py +++ xen-3.2.1-testing/tools/python/xen/xend/image.py @@ -438,6 +438,7 @@ class HVMImageHandler(ImageHandler): self.apic = int(vmConfig['platform'].get('apic', 0)) self.acpi = int(vmConfig['platform'].get('acpi', 0)) + self.extid = int(vmConfig['platform'].get('extid', 0)) self.guest_os_type = vmConfig['platform'].get('guest_os_type') # Return a list of cmd line args to the device models based on the @@ -528,6 +529,7 @@ class HVMImageHandler(ImageHandler): log.debug("store_evtchn = %d", store_evtchn) log.debug("memsize = %d", mem_mb) log.debug("vcpus = %d", self.vm.getVCpuCount()) + log.debug("extid = %d", self.extid) log.debug("acpi = %d", self.acpi) log.debug("apic = %d", self.apic) @@ -535,6 +537,7 @@ class HVMImageHandler(ImageHandler): image = self.kernel, memsize = mem_mb, vcpus = self.vm.getVCpuCount(), + extid = self.extid, acpi = self.acpi, apic = self.apic) rc['notes'] = { 'SUSPEND_CANCEL': 1 } Index: xen-3.2.1-testing/tools/python/xen/xm/create.py =================================================================== --- xen-3.2.1-testing.orig/tools/python/xen/xm/create.py +++ xen-3.2.1-testing/tools/python/xen/xm/create.py @@ -203,6 +203,10 @@ gopts.var('timer_mode', val='TIMER_MODE' use="""Timer mode (0=delay virtual time when ticks are missed; 1=virtual time is always wallclock time.""") +gopts.var('extid', val='EXTID', + fn=set_int, default=0, + use="Specify extention ID for a HVM domain.") + gopts.var('acpi', val='ACPI', fn=set_int, default=1, use="Disable or enable ACPI of HVM domain.") @@ -734,7 +738,7 @@ def configure_vifs(config_devs, vals): def configure_hvm(config_image, vals): """Create the config for HVM devices. """ - args = [ 'device_model', 'pae', 'vcpus', 'boot', 'fda', 'fdb', 'timer_mode', + args = [ 'device_model', 'pae', 'extid', 'vcpus', 'boot', 'fda', 'fdb', 'timer_mode', 'localtime', 'serial', 'stdvga', 'isa', 'nographic', 'soundhw', 'vnc', 'vncdisplay', 'vncunused', 'vncconsole', 'vnclisten', 'sdl', 'display', 'xauthority', 'rtc_timeoffset', 'monitor',