From 2f7e49dbf6e58762af11627b206031eb0c8d9052 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Fri, 16 Apr 1993 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1993-04-16 --- boot/key.c | 11 +++++++--- pc/main.c | 54 ++++++++++++++++++++++++++------------------------ power/fptrap.c | 2 ++ ss/main.c | 5 +++-- 4 files changed, 41 insertions(+), 31 deletions(-) diff --git a/boot/key.c b/boot/key.c index 8220bf7da3b4cff4acff0807198ac7bb0290a5ce..318866bc1623c994e6bfd1450f3127434b21f849 100644 --- a/boot/key.c +++ b/boot/key.c @@ -26,16 +26,21 @@ getsafe(char *field, int len, uchar *sum, char *file, int pass) void key(int islocal, Method *mp) { - int fd; + int fd, safeoff; Nvrsafe safe; char password[20]; USED(islocal); USED(mp); + if(strcmp(cputype, "sparc") == 0) + safeoff = 1024+850; + else + safeoff = 1024+900; + fd = open("#r/nvram", ORDWR); if(fd < 0 - || seek(fd, 1024+900, 0) < 0 + || seek(fd, safeoff, 0) < 0 || read(fd, &safe, sizeof safe) != sizeof safe){ memset(&safe, 0, sizeof(safe)); warning("can't read nvram"); @@ -55,7 +60,7 @@ key(int islocal, Method *mp) safe.machsum = nvcsum(safe.machkey, DESKEYLEN); safe.authidsum = nvcsum(safe.authid, sizeof(safe.authid)); safe.authdomsum = nvcsum(safe.authdom, sizeof(safe.authdom)); - if(seek(fd, 1024+900, 0) < 0 + if(seek(fd, safeoff, 0) < 0 || write(fd, &safe, sizeof safe) != sizeof safe) warning("can't write key to nvram"); } diff --git a/pc/main.c b/pc/main.c index 6ccf76c660b271b0f30c2adebe4bb8dae4ff7460..9c49ff2f71532b44ef1f9db41589055f1bf0857a 100644 --- a/pc/main.c +++ b/pc/main.c @@ -238,12 +238,37 @@ Conf conf; void confinit(void) { - long x, i, j, *l; + long x, i, j, n, *l; int pcnt; ulong ktop; char *cp; char *line[MAXCONF]; + pcnt = 0; + + /* + * parse configuration args from dos file p9rc + */ + cp = BOOTARGS; /* where b.com leaves it's config */ + cp[BOOTARGSLEN-1] = 0; + n = getfields(cp, line, MAXCONF, '\n'); + for(j = 0; j < n; j++){ + cp = strchr(line[j], '\r'); + if(cp) + *cp = 0; + cp = strchr(line[j], '='); + if(cp == 0) + continue; + *cp++ = 0; + if(cp - line[j] >= NAMELEN+1) + *(line[j]+NAMELEN-1) = 0; + confname[nconf] = line[j]; + confval[nconf] = cp; + if(strcmp(confname[nconf], "kernelpercent") == 0) + pcnt = 100 - atoi(confval[nconf]); + nconf++; + } + /* * the first 640k is the standard useful memory * the next 128K is the display, I/O mem, and BIOS @@ -285,10 +310,9 @@ confinit(void) conf.base1 = 1*MB; conf.npage1 = (i*MB - conf.base1)/BY2PG; conf.npage = conf.npage0 + conf.npage1; - conf.ldepth = 0; - pcnt = (1<memscan && mempres[j]>v; j++) v = mempres[j]; npg = (j-i)*MB/BY2PG; @@ -442,9 +444,8 @@ confinit(void) * NB. Suns must have at LEAST 8Mbytes. */ conf.npage1 = conf.npage0 - (8*MB)/BY2PG; - conf.base1 = 8*MB; + conf.base1 = conf.base0 + 8*MB; conf.npage0 = (8*MB)/BY2PG; - conf.base0 = 0; bank[1] = bank[0]-8; bank[0] = 8; }