From 0561c74f70b0d348b555a3ae20056e5331b3c4c2 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sat, 12 Mar 1994 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1994-03-12 --- boot/local.c | 20 ++++++++++++++++---- carrera/l.s | 8 ++++---- port/qio.c | 5 ++--- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/boot/local.c b/boot/local.c index 58220587cedde0c255b0c979620221eaad38d3dd..54ede9d73ae21a15a8e6dab863a8cb43520000e5 100644 --- a/boot/local.c +++ b/boot/local.c @@ -2,18 +2,30 @@ #include #include <../boot/boot.h> +static char diskname[2*NAMELEN]; static char *disk; static char *niob; void configlocal(Method *mp) { + char *p; + int n; + + disk = mp->arg; /* 1st try from config file */ + if(disk && (niob = strchr(disk, ' '))) /* assign = */ + *niob++ = 0; + if(strncmp(argv0, "dksc(0,", 7) == 0){ + p = strchr(argv0, ','); + n = strtoul(p+1, 0, 10); + sprint(diskname, "#w%d/sd%dfs", n, n); + disk = diskname; + /*print("argv0=\"%s\" --> disk = \"%s\"\n", argv0, disk);/**/ + } if(*sys == '/' || *sys == '#') disk = sys; - else - disk = mp->arg; - if(niob = strchr(disk, ' ')) /* assign = */ - *niob++ = 0; + if(disk) + setenv("bootdisk", disk); USED(mp); } diff --git a/carrera/l.s b/carrera/l.s index e3879c2bc48e4f5a86eb50aa00e1b4b6bac255ba..83dc1b7ce79798c41b55a7900ba84a07c0e0922b 100644 --- a/carrera/l.s +++ b/carrera/l.s @@ -823,9 +823,9 @@ TEXT fwblock(SB), $-4 /* fwblock(void*port, void *block, csum) */ fwloop: MOVV 0(R2), R5 MOVV R5, 0(R1) - ADDU R5, R3 + XOR R5, R3 SRLV $32, R5 - ADDU R5, R3 + XOR R5, R3 ADD $8, R2 SUB $1, R4 @@ -842,9 +842,9 @@ TEXT frblock(SB), $-4 /* frblock(void*port, void *block, csum) */ frloop: MOVV 0(R1), R5 MOVV R5, 0(R2) - ADDU R5, R3 + XOR R5, R3 SRLV $32, R5 - ADDU R5, R3 + XOR R5, R3 ADD $8, R2 SUB $1, R4 diff --git a/port/qio.c b/port/qio.c index e5dc746f5358121d16af2e716d392736359fd294..a734dc8893d107cfbc9d011ad95e526edefe075d 100644 --- a/port/qio.c +++ b/port/qio.c @@ -371,8 +371,7 @@ checkb(b, "qconsume 2"); int qpass(Queue *q, Block *b) { - int s, i, len; - int dowakeup; + int s, i, len, dowakeup; s = splhi(); @@ -417,7 +416,7 @@ qpass(Queue *q, Block *b) q->bfirst = b; q->blast = b; q->len += len; -checkb(b, "qproduce"); +checkb(b, "qpass"); if(q->state & Qstarve){ q->state &= ~Qstarve;