From 01821c8f44982b7f05d7a925bacb36b48f1f6ab8 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Thu, 2 Apr 1992 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1992-04-02 --- pc/devhard.c | 11 ++++++----- pc/vga.c | 10 ++++------ port/devmnt.c | 14 -------------- 3 files changed, 10 insertions(+), 25 deletions(-) diff --git a/pc/devhard.c b/pc/devhard.c index 642cf76f97ddc99660bc072569b2bb0f15dcc425..789aaabc9dcdedb3bcdf05e39a7248583ee1ca4b 100644 --- a/pc/devhard.c +++ b/pc/devhard.c @@ -225,13 +225,14 @@ hardattach(char *spec) for(dp = hard; dp < &hard[conf.nhard]; dp++){ if(!waserror()){ dp->bytes = 512; - hardsetbuf(dp, 1); + hardsetbuf(dp, 0); hardident(dp); switch(dp->id.magic){ case 0xA5A: /* conner drive on the AT&T NSX (safari) */ dp->cyl = dp->id.lcyls; dp->heads = dp->id.lheads; dp->sectors = dp->id.ls2t; + hardsetbuf(dp, 1); break; case 0x324A: /* hard drive on the AT&T 6386 */ dp->cyl = dp->id.lcyls - 4; @@ -494,7 +495,7 @@ hardxfer(Drive *dp, Partition *pp, int cmd, long start, long len) print("\tnsecs %d, sofar %d\n", cp->nsecs, cp->sofar);/**/ outb(cp->pbase+Pcount, cp->nsecs); outb(cp->pbase+Psector, cp->tsec); - outb(cp->pbase+Pdh, (dp->drive<<4) | cp->thead); + outb(cp->pbase+Pdh, 0x20 | (dp->drive<<4) | cp->thead); outb(cp->pbase+Pcyllsb, cp->tcyl); outb(cp->pbase+Pcylmsb, cp->tcyl>>8); outb(cp->pbase+Pcmd, cmd); @@ -536,8 +537,8 @@ hardsetbuf(Drive *dp, int on) cmdreadywait(cp); cp->cmd = Csetbuf; - outb(cp->pbase+Pprecomp, on ? 0xAA : 0x55); - outb(cp->pbase+Pdh, (dp->drive<<4)); + outb(cp->pbase+Pprecomp, on ? 0xAA : 0xFF); + outb(cp->pbase+Pdh, 0x20 | (dp->drive<<4)); outb(cp->pbase+Pcmd, Csetbuf); sleep(&cp->r, cmddone, cp); @@ -567,7 +568,7 @@ hardident(Drive *dp) cp->sofar = 0; cp->cmd = Cident; cp->dp = dp; - outb(cp->pbase+Pdh, (dp->drive<<4)); + outb(cp->pbase+Pdh, 0x20 | (dp->drive<<4)); outb(cp->pbase+Pcmd, Cident); sleep(&cp->r, cmddone, cp); if(cp->status & Serr){ diff --git a/pc/vga.c b/pc/vga.c index 5eae65ee8663403a94b32c97fad1abbb41294136..8bcd7a49d04933b2e3a5093d16feed6929230e60 100644 --- a/pc/vga.c +++ b/pc/vga.c @@ -186,10 +186,6 @@ screeninit(void) for(i = defont->bits->width*Dy(defont->bits->r); i > 0; i--, l++) *l = (*l<<24) | ((*l>>8)&0x0000ff00) | ((*l<<8)&0x00ff0000) | (*l>>24); - gbitblt(&gscreen, Pt(0, 0), &gscreen, gscreen.r, flipD[0]); - delay(2000); - gbitblt(&gscreen, Pt(0, 0), &gscreen, gscreen.r, flipD[F]); - delay(2000); gbitblt(&gscreen, Pt(0, 0), &gscreen, gscreen.r, flipD[0]); out.pos.x = MINX; out.pos.y = 0; @@ -207,6 +203,8 @@ screenputnl(void) Rect(0, out.pos.y, gscreen.r.max.x, out.pos.y+2*defont0.height), flipD[0]); } +Lock screenlock; + void screenputs(char *s, int n) { @@ -214,7 +212,7 @@ screenputs(char *s, int n) int i; char buf[4]; - lock(&printq); + lock(&screenlock); while(n > 0){ i = chartorune(&r, s); if(i == 0){ @@ -243,7 +241,7 @@ screenputs(char *s, int n) out.pos = gsubfstring(&gscreen, out.pos, defont, buf, flipD[S]); } } - unlock(&printq); + unlock(&screenlock); } int diff --git a/port/devmnt.c b/port/devmnt.c index fa18dd30e09e3ab854d9fb0e5f603211db5fb8a7..0609bab7b4aa5b0bbe1cf5349d2b03126852899e 100644 --- a/port/devmnt.c +++ b/port/devmnt.c @@ -125,8 +125,6 @@ Chan* mntattach(char *muxattach) { Mnt *m, *e; - Stream *s; - Qinfo *qi; Chan *c; struct bogus{ Chan *chan; @@ -183,18 +181,6 @@ mntattach(char *muxattach) nexterror(); } - /* If we have a stream based protocol (TCP/IP) we push fcall to block - * up P9 protocol messages into single deliminted blocks - */ - s = m->c->stream; - qi = qinfofind("fcall"); - if(s) - if(s->procq->next) - if(s->procq->next->info->nodelim) { - if(qi == 0) - error(Ebadctl); - pushq(s, qi); - } c = mattach(m, bogus.spec, bogus.serv); poperror(); return c;