Index: xen-3.4.1-testing/tools/python/xen/lowlevel/xc/xc.c =================================================================== --- xen-3.4.1-testing.orig/tools/python/xen/lowlevel/xc/xc.c +++ xen-3.4.1-testing/tools/python/xen/lowlevel/xc/xc.c @@ -888,14 +888,14 @@ static PyObject *pyxc_hvm_build(XcObject int i; #endif char *image; - int memsize, target=-1, vcpus = 1, acpi = 0, apic = 1; + int memsize, target=-1, vcpus = 1, acpi = 0, apic = 1, extid = 0; static char *kwd_list[] = { "domid", - "memsize", "image", "target", "vcpus", "acpi", + "memsize", "image", "target", "vcpus", "extid", "acpi", "apic", NULL }; - if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iis|iiii", kwd_list, + if ( !PyArg_ParseTupleAndKeywords(args, kwds, "iis|iiiii", kwd_list, &dom, &memsize, &image, &target, &vcpus, - &acpi, &apic) ) + &extid, &acpi, &apic) ) return NULL; if ( target == -1 ) @@ -921,6 +921,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.4.1-testing/tools/python/xen/xend/XendConfig.py =================================================================== --- xen-3.4.1-testing.orig/tools/python/xen/xend/XendConfig.py +++ xen-3.4.1-testing/tools/python/xen/xend/XendConfig.py @@ -143,6 +143,7 @@ XENAPI_PLATFORM_CFG_TYPES = { 'monitor': int, 'nographic': int, 'pae' : int, + 'extid': int, 'rtc_timeoffset': int, 'serial': str, 'sdl': int, Index: xen-3.4.1-testing/tools/python/xen/xend/image.py =================================================================== --- xen-3.4.1-testing.orig/tools/python/xen/xend/image.py +++ xen-3.4.1-testing/tools/python/xen/xend/image.py @@ -762,6 +762,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') @@ -878,6 +879,7 @@ class HVMImageHandler(ImageHandler): log.debug("memsize = %d", memmax_mb) log.debug("target = %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) @@ -886,6 +888,7 @@ class HVMImageHandler(ImageHandler): memsize = memmax_mb, target = mem_mb, vcpus = self.vm.getVCpuCount(), + extid = self.extid, acpi = self.acpi, apic = self.apic) rc['notes'] = { 'SUSPEND_CANCEL': 1 } Index: xen-3.4.1-testing/tools/python/xen/xm/create.py =================================================================== --- xen-3.4.1-testing.orig/tools/python/xen/xm/create.py +++ xen-3.4.1-testing/tools/python/xen/xm/create.py @@ -229,6 +229,10 @@ gopts.var('viridian', val='VIRIDIAN', use="""Expose Viridian interface to x86 HVM guest? (Default is 0).""") +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.") @@ -925,7 +929,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',