From 0dc2c4a54903b5b3ef9f2dcb978670fba82adcea Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Sat, 19 Feb 1994 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1994-02-19 --- boot/boot.c | 14 ++++++++++---- pc/clock.c | 1 + pc/fns.h | 1 + pc/main.c | 2 +- pc/trap.c | 2 +- port/devcons.c | 1 + port/devproc.c | 3 ++- port/qio.c | 1 + 8 files changed, 18 insertions(+), 7 deletions(-) diff --git a/boot/boot.c b/boot/boot.c index e423f97d18c1640c30dc59559319366fd8f06005..1c1952c8b43a26c6b84742cf07309b537b0b00fe 100644 --- a/boot/boot.c +++ b/boot/boot.c @@ -168,10 +168,16 @@ rootserver(char *arg) n += sprint(prompt+n, ", %s", mp->name); sprint(prompt+n, ")"); - if(arg) - strcpy(reply, arg); - else - strcpy(reply, method->name); + strcpy(reply, method->name); + if(arg){ + j = strlen(arg); + for(mp = method; mp->name; mp++) + if(strncmp(arg, mp->name, j) == 0) + break; + if(mp->name) + strcpy(reply, arg); + } + for(notfirst = 0;; notfirst = 1){ if(pflag || notfirst) outin(prompt, reply, sizeof(reply)); diff --git a/pc/clock.c b/pc/clock.c index cdad603f3d4e6c6f3003509bc1b88b6cda263c6e..44afd132ad248dc145b96fe2f0e7deee0f266300 100644 --- a/pc/clock.c +++ b/pc/clock.c @@ -55,6 +55,7 @@ clock(Ureg *ur, void *arg) checkalarms(); mouseclock(); hardclock(); + uartclock(); /* * process time accounting diff --git a/pc/fns.h b/pc/fns.h index fceef3721d7143e4ff9a05fa1540982e39073ad1..2456e2f260849b864417e88f11a1ddc61b6605aa 100644 --- a/pc/fns.h +++ b/pc/fns.h @@ -84,6 +84,7 @@ void toscreen(void*); void touser(void*); void trapinit(void); int tas(void*); +void uartclock(void); void vgainit(void); #define waserror() (up->nerrlab++, setlabel(&up->errlab[up->nerrlab-1])) #define kmapperm(x) kmap(x) diff --git a/pc/main.c b/pc/main.c index 4567e8b476a93a6eb9a4c1ecf3dc0531381c3045..1dee5f733cc2ec8b7bb63d43364cf1469986a66b 100644 --- a/pc/main.c +++ b/pc/main.c @@ -215,7 +215,7 @@ bootargs(ulong base) sp = (uchar*)base + BY2PG - MAXSYSARG*BY2WD; ac = 0; - av[ac++] = pusharg("/386/9safari"); + av[ac++] = pusharg("/386/9dos"); av[ac++] = pusharg("-p"); cp[64] = 0; buf[0] = 0; diff --git a/pc/trap.c b/pc/trap.c index 09eeb57c26cb1394d410d4158b43481efccf969b..eaef2c23a67f1a53664ff8997189f4e4c771b327 100644 --- a/pc/trap.c +++ b/pc/trap.c @@ -672,5 +672,5 @@ void setkernur(Ureg *xp, Proc *p) { xp->pc = p->sched.pc; - xp->sp = p->sched.sp; + xp->sp = p->sched.sp+4; } diff --git a/port/devcons.c b/port/devcons.c index 7d2b94e78296b65fd896bd6220c8169518b9150c..7bfd22a7cab147b1134c01d5e6a42ecfc6b1cfbe 100644 --- a/port/devcons.c +++ b/port/devcons.c @@ -142,6 +142,7 @@ panic(char *fmt, ...) putstrn(buf, n+1); prflush(); dumpstack(); + exit(1); } int diff --git a/port/devproc.c b/port/devproc.c index 38114e89acc2dbe7665f845410bb1c1c663e8681..83ef81da72bf33102618c891ebcc49de85c6c5b4 100644 --- a/port/devproc.c +++ b/port/devproc.c @@ -296,7 +296,8 @@ procread(Chan *c, void *va, long n, ulong offset) switch(QID(c->qid)){ case Qmem: - if(offset < KZERO) + if(offset < KZERO + || (offset >= USTKTOP-USTKSIZE && offset < USTKTOP)) return procctlmemio(p, offset, n, va, 1); /* Protect crypt key memory */ diff --git a/port/qio.c b/port/qio.c index e2e10a0ba987c112eab67ff19f0e418aa3620f5c..491faa4b387b17ee833fe41e8608bd720d39e1a0 100644 --- a/port/qio.c +++ b/port/qio.c @@ -721,6 +721,7 @@ qclose(Queue *q) q->state |= Qclosed; bfirst = q->bfirst; q->bfirst = 0; + q->len = 0; unlock(q); splx(x);