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] Also allow boolean cmdline params to be i

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Also allow boolean cmdline params to be inverted in two other ways.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Mon, 09 Jul 2007 09:52:13 -0700
Delivery-date: Mon, 09 Jul 2007 09:50:26 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/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 kfraser@xxxxxxxxxxxxxxxxxxxxx
# Date 1183987793 -3600
# Node ID 5e8eb0cf2dafc5d0e990cbd5ba18342193f2f604
# Parent  646ec1f2b41f717646d6d9f6bfd4e7ea11c9fb74
Also allow boolean cmdline params to be inverted in two other ways.

Now, a standard boolean (e.g., watchdog) can be inverted in three
ways:
 1. no-watchdog
 2. watchdog=no
 3. watchdog=off

Stacked inversions cancel each other: no-watchdog=no turns on the
watchdog.

Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
---
 xen/common/kernel.c    |   14 ++++++++------
 xen/include/xen/init.h |    2 +-
 2 files changed, 9 insertions(+), 7 deletions(-)

diff -r 646ec1f2b41f -r 5e8eb0cf2daf xen/common/kernel.c
--- a/xen/common/kernel.c       Mon Jul 09 14:13:56 2007 +0100
+++ b/xen/common/kernel.c       Mon Jul 09 14:29:53 2007 +0100
@@ -29,7 +29,7 @@ void cmdline_parse(char *cmdline)
     char opt[100], *optval, *optkey, *q;
     const char *p = cmdline;
     struct kernel_param *param;
-    int invbool;
+    int bool_assert;
 
     if ( p == NULL )
         return;
@@ -66,8 +66,8 @@ void cmdline_parse(char *cmdline)
             optval = q;       /* default option value is empty string */
 
         /* Boolean parameters can be inverted with 'no-' prefix. */
-        invbool = !strncmp("no-", optkey, 3);
-        if ( invbool )
+        bool_assert = !!strncmp("no-", optkey, 3);
+        if ( !bool_assert )
             optkey += 3;
 
         for ( param = &__setup_start; param <= &__setup_end; param++ )
@@ -85,10 +85,12 @@ void cmdline_parse(char *cmdline)
                     simple_strtol(optval, (const char **)&optval, 0);
                 break;
             case OPT_BOOL:
-                *(int *)param->var = !invbool;
-                break;
             case OPT_INVBOOL:
-                *(int *)param->var = invbool;
+                if ( !strcmp("no", optval) || !strcmp("off", optval) )
+                    bool_assert = !bool_assert;
+                if ( param->type == OPT_INVBOOL )
+                    bool_assert = !bool_assert;
+                *(int *)param->var = bool_assert;
                 break;
             case OPT_CUSTOM:
                 ((void (*)(const char *))param->var)(optval);
diff -r 646ec1f2b41f -r 5e8eb0cf2daf xen/include/xen/init.h
--- a/xen/include/xen/init.h    Mon Jul 09 14:13:56 2007 +0100
+++ b/xen/include/xen/init.h    Mon Jul 09 14:29:53 2007 +0100
@@ -93,7 +93,7 @@ extern struct kernel_param __setup_start
     static char __setup_str_##_var[] __initdata = _name; \
     static struct kernel_param __setup_##_var __attribute_used__ \
         __initsetup = { __setup_str_##_var, OPT_BOOL, &_var, sizeof(_var) }
-#define invboolean_param(_name, _var) \
+#define invbool_param(_name, _var) \
     static char __setup_str_##_var[] __initdata = _name; \
     static struct kernel_param __setup_##_var __attribute_used__ \
         __initsetup = { __setup_str_##_var, OPT_INVBOOL, &_var, sizeof(_var) }

_______________________________________________
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] Also allow boolean cmdline params to be inverted in two other ways., Xen patchbot-unstable <=