WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

[Xen-ia64-devel] [PATCH 1/5] Add guest_os_type config option

To: xen-ia64-devel <xen-ia64-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-ia64-devel] [PATCH 1/5] Add guest_os_type config option
From: Alex Williamson <alex.williamson@xxxxxx>
Date: Tue, 27 Nov 2007 21:20:20 -0700
Delivery-date: Tue, 27 Nov 2007 20:21:18 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: OSLO R&D
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
   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

<Prev in Thread] Current Thread [Next in Thread>