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-changelog

[Xen-changelog] [xen-unstable] Allow tools to see the hypervisor command

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Allow tools to see the hypervisor command line.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 19 Jun 2009 00:56:34 -0700
Delivery-date: Fri, 19 Jun 2009 01:08:52 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1245316845 -3600
# Node ID 407e2e7dca5b1b3f528959246b1efbd4e243c119
# Parent  c0d2838fc10f8bb0b004cee3fe7e2b41ff4e2f0e
Allow tools to see the hypervisor command line.

This is useful from tools in the same way /proc/cmdline is useful for
the domain 0 kernel.

Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
---
 tools/python/xen/lowlevel/xc/xc.c |    7 ++++++-
 tools/python/xen/xend/XendNode.py |    5 ++++-
 tools/python/xen/xm/main.py       |    1 +
 xen/common/compat/kernel.c        |    2 ++
 xen/common/kernel.c               |   13 ++++++++++++-
 xen/include/public/version.h      |    3 +++
 6 files changed, 28 insertions(+), 3 deletions(-)

diff -r c0d2838fc10f -r 407e2e7dca5b tools/python/xen/lowlevel/xc/xc.c
--- a/tools/python/xen/lowlevel/xc/xc.c Thu Jun 18 10:20:17 2009 +0100
+++ b/tools/python/xen/lowlevel/xc/xc.c Thu Jun 18 10:20:45 2009 +0100
@@ -1132,6 +1132,7 @@ static PyObject *pyxc_xeninfo(XcObject *
     xen_changeset_info_t xen_chgset;
     xen_capabilities_info_t xen_caps;
     xen_platform_parameters_t p_parms;
+    xen_commandline_t xen_commandline;
     long xen_version;
     long xen_pagesize;
     char str[128];
@@ -1153,13 +1154,16 @@ static PyObject *pyxc_xeninfo(XcObject *
     if ( xc_version(self->xc_handle, XENVER_platform_parameters, &p_parms) != 
0 )
         return pyxc_error_to_exception();
 
+    if ( xc_version(self->xc_handle, XENVER_commandline, &xen_commandline) != 
0 )
+        return pyxc_error_to_exception();
+
     snprintf(str, sizeof(str), "virt_start=0x%lx", p_parms.virt_start);
 
     xen_pagesize = xc_version(self->xc_handle, XENVER_pagesize, NULL);
     if (xen_pagesize < 0 )
         return pyxc_error_to_exception();
 
-    return Py_BuildValue("{s:i,s:i,s:s,s:s,s:i,s:s,s:s,s:s,s:s,s:s,s:s}",
+    return Py_BuildValue("{s:i,s:i,s:s,s:s,s:i,s:s,s:s,s:s,s:s,s:s,s:s,s:s}",
                          "xen_major", xen_version >> 16,
                          "xen_minor", (xen_version & 0xffff),
                          "xen_extra", xen_extra,
@@ -1167,6 +1171,7 @@ static PyObject *pyxc_xeninfo(XcObject *
                          "xen_pagesize", xen_pagesize,
                          "platform_params", str,
                          "xen_changeset", xen_chgset,
+                         "xen_commandline", xen_commandline,
                          "cc_compiler", xen_cc.compiler,
                          "cc_compile_by", xen_cc.compile_by,
                          "cc_compile_domain", xen_cc.compile_domain,
diff -r c0d2838fc10f -r 407e2e7dca5b tools/python/xen/xend/XendNode.py
--- a/tools/python/xen/xend/XendNode.py Thu Jun 18 10:20:17 2009 +0100
+++ b/tools/python/xen/xend/XendNode.py Thu Jun 18 10:20:45 2009 +0100
@@ -91,6 +91,7 @@ class XendNode:
         # is directly exposed via XenAPI
         self.other_config["xen_pagesize"] = self.xeninfo_dict()["xen_pagesize"]
         self.other_config["platform_params"] = 
self.xeninfo_dict()["platform_params"]
+        self.other_config["xen_commandline"] = 
self.xeninfo_dict()["xen_commandline"]
             
         # load CPU UUIDs
         saved_cpus = self.state_store.load_state('cpu')
@@ -612,7 +613,8 @@ class XendNode:
             "cc_compile_by":     xeninfo_dict["cc_compile_by"],
             "cc_compile_domain": xeninfo_dict["cc_compile_domain"],
             "cc_compile_date":   xeninfo_dict["cc_compile_date"],
-            "xen_changeset":     xeninfo_dict["xen_changeset"]
+            "xen_changeset":     xeninfo_dict["xen_changeset"],
+            "xen_commandline":   xeninfo_dict["xen_commandline"]
             })
         
         return info
@@ -888,6 +890,7 @@ class XendNode:
                       'xen_pagesize',
                       'platform_params',
                       'xen_changeset',
+                      'xen_commandline',
                       'cc_compiler',
                       'cc_compile_by',
                       'cc_compile_domain',
diff -r c0d2838fc10f -r 407e2e7dca5b tools/python/xen/xm/main.py
--- a/tools/python/xen/xm/main.py       Thu Jun 18 10:20:17 2009 +0100
+++ b/tools/python/xen/xm/main.py       Thu Jun 18 10:20:45 2009 +0100
@@ -1757,6 +1757,7 @@ def xm_info(args):
             "xen_scheduler":     getVal(["sched_policy"]),
             "xen_pagesize":      getVal(["other_config", "xen_pagesize"]),
             "platform_params":   getVal(["other_config", "platform_params"]),
+            "xen_commandline":   getVal(["other_config", "xen_commandline"]),
             "xen_changeset":     getVal(["software_version", "xen_changeset"]),
             "cc_compiler":       getVal(["software_version", "cc_compiler"]),
             "cc_compile_by":     getVal(["software_version", "cc_compile_by"]),
diff -r c0d2838fc10f -r 407e2e7dca5b xen/common/compat/kernel.c
--- a/xen/common/compat/kernel.c        Thu Jun 18 10:20:17 2009 +0100
+++ b/xen/common/compat/kernel.c        Thu Jun 18 10:20:45 2009 +0100
@@ -14,6 +14,8 @@
 #include <compat/xen.h>
 #include <compat/nmi.h>
 #include <compat/version.h>
+
+extern xen_commandline_t saved_cmdline;
 
 #define xen_extraversion compat_extraversion
 #define xen_extraversion_t compat_extraversion_t
diff -r c0d2838fc10f -r 407e2e7dca5b xen/common/kernel.c
--- a/xen/common/kernel.c       Thu Jun 18 10:20:17 2009 +0100
+++ b/xen/common/kernel.c       Thu Jun 18 10:20:45 2009 +0100
@@ -24,12 +24,16 @@
 
 int tainted;
 
+xen_commandline_t saved_cmdline;
+
 void cmdline_parse(char *cmdline)
 {
     char opt[100], *optval, *optkey, *q;
     const char *p = cmdline;
     struct kernel_param *param;
     int bool_assert;
+
+    safe_strcpy(saved_cmdline, cmdline);
 
     if ( p == NULL )
         return;
@@ -246,7 +250,14 @@ DO(xen_version)(int cmd, XEN_GUEST_HANDL
                            ARRAY_SIZE(current->domain->handle)) )
             return -EFAULT;
         return 0;
-    }    
+    }
+
+    case XENVER_commandline:
+    {
+        if ( copy_to_guest(arg, saved_cmdline, ARRAY_SIZE(saved_cmdline)) )
+            return -EFAULT;
+        return 0;
+    }
     }
 
     return -ENOSYS;
diff -r c0d2838fc10f -r 407e2e7dca5b xen/include/public/version.h
--- a/xen/include/public/version.h      Thu Jun 18 10:20:17 2009 +0100
+++ b/xen/include/public/version.h      Thu Jun 18 10:20:45 2009 +0100
@@ -78,6 +78,9 @@ typedef struct xen_feature_info xen_feat
 /* arg == xen_domain_handle_t. */
 #define XENVER_guest_handle 8
 
+#define XENVER_commandline 9
+typedef char xen_commandline_t[1024];
+
 #endif /* __XEN_PUBLIC_VERSION_H__ */
 
 /*

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Allow tools to see the hypervisor command line., Xen patchbot-unstable <=