Update patch with Jimi's suggestions:

Signed-off-by: Jerone Young <[EMAIL PROTECTED]>

diff -r 9148f7816d00 xen/arch/powerpc/boot_of.c
--- a/xen/arch/powerpc/boot_of.c        Tue Oct 24 19:11:00 2006 -0400
+++ b/xen/arch/powerpc/boot_of.c        Wed Dec 06 11:34:37 2006 -0600
@@ -964,10 +964,11 @@ static void * __init boot_of_module(ulon
     static module_t mods[4];
     ulong mod0_start;
     ulong mod0_size;
-    static const char sepr[] = " -- ";
+    static const char * sepr[] = {" -- ", " || "};
+    int sepr_index = 0;
     extern char dom0_start[] __attribute__ ((weak));
     extern char dom0_size[] __attribute__ ((weak));
-    const char *p;
+    const char *p = NULL;
     int mod;
     void *oft;
 
@@ -1020,11 +1021,17 @@ static void * __init boot_of_module(ulon
 
     of_printf("%s: dom0 mod @ 0x%016x[0x%x]\n", __func__,
               mods[mod].mod_start, mods[mod].mod_end);
-    p = strstr((char *)(ulong)mbi->cmdline, sepr);
+
+    /* look for deliminator -- or || is delimator */
+    for(sepr_index; sepr_index < ARRAY_SIZE(sepr); sepr_index++){
+        p = strstr((char *)(ulong)mbi->cmdline, sepr[sepr_index]);
+        if (p != NULL) 
+            break;
+    }
+
     if (p != NULL) {
         /* Xen proper should never know about the dom0 args.  */
-        *(char *)p = '\0';
-        p += sizeof (sepr) - 1;
+        p += strlen(sepr[sepr_index]);
         mods[mod].string = (u32)(ulong)p;
         of_printf("%s: dom0 mod string: %s\n", __func__, p);
     }



On Tue, 2006-12-05 at 19:06 -0500, Jimi Xenidis wrote:
> On Dec 5, 2006, at 6:20 PM, Jerone Young wrote:
> 
> > This patch changes the code so can support more than one type
> > delimiter
> > on the command line. Now you can use "||" as well as "--". " || "
> > works
> > better with SLOF currently available. There is a bug in some cases
> > using
> > SLOF where "--" is not treated as desired.
> >
> > Patch has been tested and ready to go.
> >
> > Signed-off-by: Jerone Young <[EMAIL PROTECTED]>
> >
> > diff -r 9148f7816d00 xen/arch/powerpc/boot_of.c
> > --- a/xen/arch/powerpc/boot_of.c    Tue Oct 24 19:11:00 2006 -0400
> > +++ b/xen/arch/powerpc/boot_of.c    Tue Dec 05 17:08:41 2006 -0600
> > @@ -964,10 +964,11 @@ static void * __init boot_of_module(ulon
> >      static module_t mods[4];
> >      ulong mod0_start;
> >      ulong mod0_size;
> > -    static const char sepr[] = " -- ";
> > +    static const char * sepr[] = {" -- ", " || "};
> > +    static int sepr_index = 0;
> 
> no reason for sepr_index to be static
> 
> >      extern char dom0_start[] __attribute__ ((weak));
> >      extern char dom0_size[] __attribute__ ((weak));
> > -    const char *p;
> > +    const char *p = NULL;
> >      int mod;
> >      void *oft;
> >
> > @@ -1020,11 +1021,18 @@ static void * __init boot_of_module(ulon
> >
> >      of_printf("%s: dom0 mod @ 0x%016x[0x%x]\n", __func__,
> >                mods[mod].mod_start, mods[mod].mod_end);
> > -    p = strstr((char *)(ulong)mbi->cmdline, sepr);
> > +
> > +    //look for deliminator -- or || is delimator
> We avoid C++ comments please use /* */ and I can't believe _I_ cought
> a typo :)
> 
> > +    for(sepr_index; sepr_index < (sizeof(sepr)/sizeof(char *));
> > sepr_index++){
> Please use "ARRAY_SIZE(sepr)"
> 
> > +        p = strstr((char *)(ulong)mbi->cmdline, sepr[sepr_index]);
> > +        if (p != NULL)
> > +            break;
> > +    }
> > +
> >      if (p != NULL) {
> >          /* Xen proper should never know about the dom0 args.  */
> >          *(char *)p = '\0';
> > -        p += sizeof (sepr) - 1;
> > +        p += strlen(sepr[sepr_index]) - 1;
> 
> The -1 is because sizeof() includes '\0', so you can drop it here.
> 
> 
> 


_______________________________________________
Xen-ppc-devel mailing list
Xen-ppc-devel@lists.xensource.com
http://lists.xensource.com/xen-ppc-devel

Reply via email to