Index: xen-3.2-testing/tools/python/xen/lowlevel/xc/xc.c =================================================================== --- xen-3.2-testing.orig/tools/python/xen/lowlevel/xc/xc.c +++ xen-3.2-testing/tools/python/xen/lowlevel/xc/xc.c @@ -632,14 +632,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 ) @@ -664,6 +664,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-testing/tools/python/xen/xend/XendConfig.py =================================================================== --- xen-3.2-testing.orig/tools/python/xen/xend/XendConfig.py +++ xen-3.2-testing/tools/python/xen/xend/XendConfig.py @@ -126,7 +126,7 @@ LEGACY_CFG_TO_XENAPI_CFG = reverse_dict( # Platform configuration keys. XENAPI_PLATFORM_CFG = [ 'acpi', 'apic', 'boot', 'device_model', 'display', 'fda', 'fdb', 'keymap', 'isa', 'localtime', 'monitor', - 'nographic', 'pae', 'rtc_timeoffset', 'serial', 'sdl', + 'nographic', 'pae', 'extid', 'rtc_timeoffset', 'serial', 'sdl', 'soundhw','stdvga', 'usb', 'usbdevice', 'vnc', 'vncconsole', 'vncdisplay', 'vnclisten', 'timer_mode', 'vncpasswd', 'vncunused', 'xauthority', 'pci', 'vhpt', Index: xen-3.2-testing/tools/python/xen/xend/image.py =================================================================== --- xen-3.2-testing.orig/tools/python/xen/xend/image.py +++ xen-3.2-testing/tools/python/xen/xend/image.py @@ -426,6 +426,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 @@ -516,6 +517,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) @@ -523,6 +525,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-testing/tools/python/xen/xm/create.py =================================================================== --- xen-3.2-testing.orig/tools/python/xen/xm/create.py +++ xen-3.2-testing/tools/python/xen/xm/create.py @@ -199,6 +199,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.") @@ -719,7 +723,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',