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 <jyoung5@xxxxxxxxxx>
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@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ppc-devel
|