|
@@ -19,6 +19,7 @@
|
|
|
#define BOOTARGS ((char*)CONFADDR)
|
|
|
#define BOOTARGSLEN (16*KiB) /* limit in devenv.c */
|
|
|
#define MAXCONF 64
|
|
|
+#define MAXCONFLINE 160
|
|
|
|
|
|
#define isascii(c) ((uchar)(c) > 0 && (uchar)(c) < 0177)
|
|
|
|
|
@@ -45,7 +46,7 @@ char debug[256];
|
|
|
|
|
|
/* store plan9.ini contents here at least until we stash them in #ec */
|
|
|
static char confname[MAXCONF][KNAMELEN];
|
|
|
-static char *confval[MAXCONF];
|
|
|
+static char confval[MAXCONF][MAXCONFLINE];
|
|
|
static int nconf;
|
|
|
|
|
|
static int
|
|
@@ -82,7 +83,8 @@ addconf(char *name, char *val)
|
|
|
i = nconf++;
|
|
|
strecpy(confname[i], confname[i]+sizeof(confname[i]), name);
|
|
|
}
|
|
|
- confval[i] = val;
|
|
|
+// confval[i] = val;
|
|
|
+ strecpy(confval[i], confval[i]+sizeof(confval[i]), val);
|
|
|
}
|
|
|
|
|
|
static void
|
|
@@ -115,13 +117,12 @@ writeconf(void)
|
|
|
|
|
|
/*
|
|
|
* assumes that we have loaded our /cfg/pxe/mac file at 0x1000 with
|
|
|
- * tftp in u-boot.
|
|
|
+ * tftp in u-boot. no longer uses malloc, so can be called early.
|
|
|
*/
|
|
|
static void
|
|
|
plan9iniinit(void)
|
|
|
{
|
|
|
char *k, *v, *next;
|
|
|
- static char *kd, *vd;
|
|
|
|
|
|
k = (char *)CONFADDR;
|
|
|
if(!isascii(*k))
|
|
@@ -141,10 +142,7 @@ plan9iniinit(void)
|
|
|
continue; /* mal-formed line */
|
|
|
*v++ = '\0';
|
|
|
|
|
|
- kd = vd = nil;
|
|
|
- kstrdup(&kd, k);
|
|
|
- kstrdup(&vd, v);
|
|
|
- addconf(kd, vd);
|
|
|
+ addconf(k, v);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -270,6 +268,9 @@ wave('9');
|
|
|
archconsole();
|
|
|
wave(' ');
|
|
|
|
|
|
+ /* want plan9.ini to be able to affect memory sizing in confinit */
|
|
|
+ plan9iniinit(); /* before we step on plan9.ini in low memory */
|
|
|
+
|
|
|
confinit();
|
|
|
/* xinit would print if it could */
|
|
|
xinit();
|
|
@@ -290,8 +291,6 @@ wave(' ');
|
|
|
trapinit();
|
|
|
clockinit();
|
|
|
|
|
|
- plan9iniinit(); /* before we step on plan9.ini in low memory */
|
|
|
-
|
|
|
printinit();
|
|
|
uartkirkwoodconsole();
|
|
|
/* only now can we print */
|