Index: xen-unstable.hg/tools/python/xen/lowlevel/xc/xc.c =================================================================== --- xen-unstable.hg.orig/tools/python/xen/lowlevel/xc/xc.c 2008-04-04 13:01:00.000000000 -0400 +++ xen-unstable.hg/tools/python/xen/lowlevel/xc/xc.c 2008-04-04 13:45:08.000000000 -0400 @@ -622,14 +622,14 @@ 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 ) @@ -654,6 +654,7 @@ 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-unstable.hg/tools/python/xen/xend/XendConfig.py =================================================================== --- xen-unstable.hg.orig/tools/python/xen/xend/XendConfig.py 2008-04-04 13:01:01.000000000 -0400 +++ xen-unstable.hg/tools/python/xen/xend/XendConfig.py 2008-04-04 13:56:58.000000000 -0400 @@ -139,6 +139,7 @@ 'monitor': int, 'nographic': int, 'pae' : int, + 'extid': int, 'rtc_timeoffset': int, 'serial': str, 'sdl': int, Index: xen-unstable.hg/tools/python/xen/xend/image.py =================================================================== --- xen-unstable.hg.orig/tools/python/xen/xend/image.py 2008-04-04 13:01:01.000000000 -0400 +++ xen-unstable.hg/tools/python/xen/xend/image.py 2008-04-04 13:45:08.000000000 -0400 @@ -508,6 +508,7 @@ 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 @@ -607,6 +608,7 @@ 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) @@ -614,6 +616,7 @@ image = self.loader, memsize = mem_mb, vcpus = self.vm.getVCpuCount(), + extid = self.extid, acpi = self.acpi, apic = self.apic) rc['notes'] = { 'SUSPEND_CANCEL': 1 } Index: xen-unstable.hg/tools/python/xen/xm/create.py =================================================================== --- xen-unstable.hg.orig/tools/python/xen/xm/create.py 2008-04-04 13:01:01.000000000 -0400 +++ xen-unstable.hg/tools/python/xen/xm/create.py 2008-04-04 13:45:08.000000000 -0400 @@ -207,6 +207,10 @@ 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.") @@ -750,7 +754,7 @@ 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',