Hi Alex:
Thanks for your complement.
My concern is the u64 type is not enough if length of OS name is more
than eight words. But we may use abbreviation to deal
with it. So this is ok for me.
Good good study,day day up ! ^_^
-Wing(zhang xin)
OTC,Intel Corporation
>-----Original Message-----
>From: Alex Williamson [mailto:alex.williamson@xxxxxx]
>Sent: 2007?11?28? 12:20
>To: xen-ia64-devel
>Cc: Zhang, Xing Z; Duan, Ronghui
>Subject: [PATCH 1/5] Add guest_os_type config option
>
>
> This will be sent to xen-devel if this is the way we decide
>to go.
>This leverages much of Wing's code, but encodes the guest OS
>type
>generically. This also sets HVM_PARAM_GOS_TYPE across all
>archs.
>
>Signed-off-by: Alex Williamson <alex.williamson@xxxxxx>
>---
>
>diff -r 98defc4f3bf9 tools/python/xen/xend/XendConfig.py
>--- a/tools/python/xen/xend/XendConfig.py Mon Nov 26
>10:07:30 2007 -0700
>+++ b/tools/python/xen/xend/XendConfig.py Tue Nov 27
>09:21:20 2007 -0700
>@@ -129,7 +129,8 @@ XENAPI_PLATFORM_CFG = [ 'acpi', 'apic',
> 'nographic', 'pae', 'rtc_timeoffset',
>'serial', 'sdl',
> 'soundhw','stdvga', 'usb', 'usbdevice',
>'vnc',
> 'vncconsole', 'vncdisplay', 'vnclisten',
>'timer_mode',
>- 'vncpasswd', 'vncunused', 'xauthority',
>'pci', 'vhpt']
>+ 'vncpasswd', 'vncunused', 'xauthority',
>'pci', 'vhpt',
>+ 'guest_os_type' ]
>
> # Xen API console 'other_config' keys.
> XENAPI_CONSOLE_OTHER_CFG = ['vncunused', 'vncdisplay',
>'vnclisten',
>diff -r 98defc4f3bf9 tools/python/xen/xend/XendConstants.py
>--- a/tools/python/xen/xend/XendConstants.py Mon Nov 26
>10:07:30 2007 -0700
>+++ b/tools/python/xen/xend/XendConstants.py Tue Nov 27
>09:21:20 2007 -0700
>@@ -47,6 +47,7 @@ HVM_PARAM_VHPT_SIZE = 8
> HVM_PARAM_VHPT_SIZE = 8
> HVM_PARAM_BUFPIOREQ_PFN = 9
> HVM_PARAM_TIMER_MODE = 10
>+HVM_PARAM_GOS_TYPE = 11
>
> restart_modes = [
> "restart",
>diff -r 98defc4f3bf9 tools/python/xen/xend/image.py
>--- a/tools/python/xen/xend/image.py Mon Nov 26 10:07:30
>2007 -0700
>+++ b/tools/python/xen/xend/image.py Tue Nov 27 12:21:56
>2007 -0700
>@@ -22,6 +22,7 @@ import math
> import math
> import time
> import signal
>+import struct
>
> import xen.lowlevel.xc
> from xen.xend.XendConstants import *
>@@ -426,6 +427,7 @@ class HVMImageHandler(ImageHandler):
>
> self.apic = int(vmConfig['platform'].get('apic', 0))
> self.acpi = int(vmConfig['platform'].get('acpi', 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
> # xm config file
>@@ -503,6 +505,11 @@ class HVMImageHandler(ImageHandler):
> return args
>
> def buildDomain(self):
>+ # Encode OS type string into an integer w/ null padding
>+ val = struct.unpack("Q",
>+
>self.guest_os_type[:8].lower().ljust(8, chr(0)))[0]
>+ xc.hvm_set_param(self.vm.getDomid(),
>HVM_PARAM_GOS_TYPE, val)
>+
> store_evtchn = self.vm.getStorePort()
>
> mem_mb = self.getRequiredInitialReservation() / 1024
>diff -r 98defc4f3bf9 tools/python/xen/xm/create.py
>--- a/tools/python/xen/xm/create.py Mon Nov 26 10:07:30
>2007 -0700
>+++ b/tools/python/xen/xm/create.py Tue Nov 27 09:21:20
>2007 -0700
>@@ -453,6 +453,10 @@ gopts.var('usbdevice', val='NAME',
> gopts.var('usbdevice', val='NAME',
> fn=set_value, default='',
> use="Name of USB device to add?")
>+
>+gopts.var('guest_os_type', val='NAME',
>+ fn=set_value, default='default',
>+ use="Guest OS type running in HVM")
>
> gopts.var('stdvga', val='no|yes',
> fn=set_bool, default=0,
>@@ -733,7 +737,9 @@ def configure_hvm(config_image, vals):
> 'localtime', 'serial', 'stdvga', 'isa',
>'nographic', 'soundhw',
> 'vnc', 'vncdisplay', 'vncunused', 'vncconsole',
>'vnclisten',
> 'sdl', 'display', 'xauthority', 'rtc_timeoffset',
>'monitor',
>- 'acpi', 'apic', 'usb', 'usbdevice', 'keymap',
>'pci' ]
>+ 'acpi', 'apic', 'usb', 'usbdevice', 'keymap',
>'pci',
>+ 'guest_os_type']
>+
> for a in args:
> if a in vals.__dict__ and vals.__dict__[a] is not None:
> config_image.append([a, vals.__dict__[a]])
>diff -r 98defc4f3bf9 xen/include/public/hvm/params.h
>--- a/xen/include/public/hvm/params.h Mon Nov 26 10:07:30
>2007 -0700
>+++ b/xen/include/public/hvm/params.h Tue Nov 27 11:20:12
>2007 -0700
>@@ -75,6 +75,8 @@
> #define HVMPTM_no_delay_for_missed_ticks 1
> #define HVMPTM_no_missed_tick_accounting 2
>
>-#define HVM_NR_PARAMS 11
>+#define HVM_PARAM_GOS_TYPE 11
>+
>+#define HVM_NR_PARAMS 12
>
> #endif /* __XEN_PUBLIC_HVM_PARAMS_H__ */
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|