From cfee2f19b39241f91b5ac8be5a4bbd5e0856a610 Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Tue, 11 Aug 1998 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1998-08-11 --- pc/devi82365.c | 8 +++++--- pc/etherelnk3.c | 2 +- pc/pcmciamodem.c | 8 ++++++-- pc/scsi.c | 4 ++-- pc/trap.c | 14 +++++++------- port/devcons.c | 2 +- port/pgrp.c | 2 ++ port/portdat.h | 34 ++++++++++++++++++++++++++++++++++ port/portfns.h | 2 +- 9 files changed, 59 insertions(+), 17 deletions(-) diff --git a/pc/devi82365.c b/pc/devi82365.c index 506d97085eb10e9ee3105cffb9b99ef4e27fbc23..2a221a8b0f5e52b17d5224b6c30e0828f0107ad5 100644 --- a/pc/devi82365.c +++ b/pc/devi82365.c @@ -461,6 +461,8 @@ enum Qmem, Qattr, Qctl, + + Nents = 3, }; #define SLOTNO(c) ((c->qid.path>>8)&0xff) @@ -476,12 +478,12 @@ pcmgen(Chan *c, Dirtab *, int , int i, Dir *dp) Slot *pp; char name[NAMELEN]; - if(i >= 3*nslot) + if(i >= Nents*nslot) return -1; - slotno = i/3; + slotno = i/Nents; pp = slot + slotno; len = 0; - switch(i%3){ + switch(i%Nents){ case 0: qid.path = QID(slotno, Qmem); sprint(name, "pcm%dmem", slotno); diff --git a/pc/etherelnk3.c b/pc/etherelnk3.c index f81be87440f627913d8e083f4ebbdc0e00cb6c5d..59cae592f1f3c8dd918fb780685d8a3b64f925c9 100644 --- a/pc/etherelnk3.c +++ b/pc/etherelnk3.c @@ -1761,7 +1761,7 @@ else anlpar = miir(port, phyaddr, 0x05) & 0x03E0; anar &= anlpar; miir(port, phyaddr, 0x00); - XCVRDEBUG("mii an: %uX r0:%uX r1:%uX\n", + XCVRDEBUG("mii an: %uX anlp: %uX r0:%uX r1:%uX\n", anar, anlpar, miir(port, phyaddr, 0x00), miir(port, phyaddr, 0x01)); for(i = 0; i < ether->nopt; i++){ if(cistrcmp(ether->opt[i], "fullduplex") == 0) diff --git a/pc/pcmciamodem.c b/pc/pcmciamodem.c index e6c933b84019bb8380ce53dd8c44925a4387e299..71540993807da3eafefb33f99364c21cc0cd6946 100644 --- a/pc/pcmciamodem.c +++ b/pc/pcmciamodem.c @@ -29,7 +29,7 @@ void pcmciamodemlink(void) { ISAConf isa; - int i, slot; + int i, j, slot; i = 0; for(;;){ @@ -49,7 +49,11 @@ pcmciamodemlink(void) if(isa.port == 0) isa.port = 0x2F8; - slot = pcmspecial(modems[0], &isa); + for(j = 0; modems[j]; j++){ + slot = pcmspecial(modems[0], &isa); + if(slot >= 0) + break; + } if(slot < 0) break; } diff --git a/pc/scsi.c b/pc/scsi.c index bc4295805190dd21dcaeaaab9f5b5981ef11871a..2bb613559313a096d88118de2c688bf162a1032c 100644 --- a/pc/scsi.c +++ b/pc/scsi.c @@ -80,7 +80,7 @@ scsireset(void) print("scsi#%d: %s: port 0x%luX irq %d", ctlrno, ctlr->type, ctlr->port, - ctlr->irq, ctlr->mem, ctlr->size); + ctlr->irq); if(ctlr->mem) print(" addr 0x%luX", PADDR(ctlr->mem)); if(ctlr->size) @@ -188,7 +188,7 @@ scsiprobe(Ctlr *ctlr) print("scsi#%d: unit %d inquire failed, status %d\n", t->ctlrno, i, s); continue; } - print("scsi#%d: unit %d: %s\n", t->ctlrno, i, t->inq+8); + print("scsi#%d: unit %d: %s\n", t->ctlrno, i, (char*)(t->inq+8)); t->ok = 1; } } diff --git a/pc/trap.c b/pc/trap.c index 5273a89ae949155eaccb791773cc80adce61a240..89cbe5b5db1dcb07b58ea9ed894a4e0cf3c56e12 100644 --- a/pc/trap.c +++ b/pc/trap.c @@ -235,12 +235,12 @@ dumpregs2(Ureg* ureg) print("cpu%d: registers for %s %d\n", m->machno, up->text, up->pid); else print("cpu%d: registers for kernel\n", m->machno); - print("FLAGS=%luX TRAP=%luX ECODE=%luX PC=%luX", ureg->flags, ureg->trap, + print("FLAGS=%lux TRAP=%lux ECODE=%lux PC=%lux", ureg->flags, ureg->trap, ureg->ecode, ureg->pc); - print(" SS=%4.4luX USP=%luX\n", ureg->ss & 0xFFFF, ureg->usp); - print(" AX %8.8luX BX %8.8luX CX %8.8luX DX %8.8luX\n", + print(" SS=%4.4lux USP=%lux\n", ureg->ss & 0xFFFF, ureg->usp); + print(" AX %8.8lux BX %8.8lux CX %8.8lux DX %8.8lux\n", ureg->ax, ureg->bx, ureg->cx, ureg->dx); - print(" SI %8.8luX DI %8.8luX BP %8.8luX\n", + print(" SI %8.8lux DI %8.8lux BP %8.8lux\n", ureg->si, ureg->di, ureg->bp); print(" CS %4.4uX DS %4.4uX ES %4.4uX FS %4.4uX GS %4.4uX\n", ureg->cs & 0xFFFF, ureg->ds & 0xFFFF, ureg->es & 0xFFFF, @@ -264,14 +264,14 @@ dumpregs(Ureg* ureg) */ print(" CR0 %8.8lux CR2 %8.8lux CR3 %8.8lux", getcr0(), getcr2(), getcr3()); if(m->cpuiddx & 0x9A){ - print(" CR4 %8.8luX", getcr4()); + print(" CR4 %8.8lux", getcr4()); if((m->cpuiddx & 0xA0) == 0xA0){ rdmsr(0x00, &mca); rdmsr(0x01, &mct); - print("\n MCA %8.8lluX MCT %8.8lluX", mca, mct); + print("\n MCA %8.8llux MCT %8.8llux", mca, mct); } } - print("\n ur %luX up %luX\n", ureg, up); + print("\n ur %lux up %lux\n", ureg, up); } void diff --git a/port/devcons.c b/port/devcons.c index 0667fabb3e94003b64e4726880bd225ddf18dae5..dfb17b6ea6d4567d19420cab3d55a6d094ce29a1 100644 --- a/port/devcons.c +++ b/port/devcons.c @@ -714,7 +714,7 @@ consread(Chan *c, void *buf, long n, vlong off) return n; default: - print("consread %lux\n", c->qid); + print("consread %lux\n", c->qid.path); error(Egreg); } return -1; /* never reached */ diff --git a/port/pgrp.c b/port/pgrp.c index 6e13c5028aac2bb364c522734c86e10b31632160..0d3105b3fda296a84e2f912587bf92da374688f7 100644 --- a/port/pgrp.c +++ b/port/pgrp.c @@ -76,6 +76,7 @@ closepgrp(Pgrp *p) return; qlock(&p->debug); + wlock(&p->ns); p->pgrpid = -1; e = &p->mnthash[MNTHASH]; @@ -87,6 +88,7 @@ closepgrp(Pgrp *p) free(f); } } + wunlock(&p->ns); qunlock(&p->debug); free(p); } diff --git a/port/portdat.h b/port/portdat.h index 0bbc723dc66c72155b70713be1ed7f672daeb9b1..4bf75d4ada519b27332fada1315e3184b03a8427 100644 --- a/port/portdat.h +++ b/port/portdat.h @@ -709,3 +709,37 @@ enum }; extern int nsyscall; + +#pragma varargck argpos print 1 +#pragma varargck argpos snprint 3 +#pragma varargck argpos sprint 2 +#pragma varargck argpos fprint 2 + +#pragma varargck type "lld" vlong +#pragma varargck type "llx" vlong +#pragma varargck type "lld" uvlong +#pragma varargck type "llx" uvlong +#pragma varargck type "lx" void* +#pragma varargck type "ld" long +#pragma varargck type "lx" long +#pragma varargck type "ld" ulong +#pragma varargck type "lx" ulong +#pragma varargck type "d" int +#pragma varargck type "x" int +#pragma varargck type "c" int +#pragma varargck type "C" int +#pragma varargck type "d" uint +#pragma varargck type "x" uint +#pragma varargck type "c" uint +#pragma varargck type "C" uint +#pragma varargck type "f" double +#pragma varargck type "e" double +#pragma varargck type "g" double +#pragma varargck type "s" char* +#pragma varargck type "S" Rune* +#pragma varargck type "r" void +#pragma varargck type "%" void +#pragma varargck type "I" uchar* +#pragma varargck type "V" uchar* +#pragma varargck type "E" uchar* +#pragma varargck type "M" uchar* diff --git a/port/portfns.h b/port/portfns.h index 78203053745cc818c1d12306b70b88b1848a64da..eb027cd043dd25694ad0ceb707d4deddfb33d375 100644 --- a/port/portfns.h +++ b/port/portfns.h @@ -191,7 +191,7 @@ int proccounter(char *name); void procctl(Proc*); void procdump(void); void procinit0(void); -void procsegflush(Segment*); +void procflushseg(Segment*); Proc* proctab(int); void procwired(Proc*); void ptclone(Chan*, int, int);