M pc/devi82365.c => pc/devi82365.c +5 -3
@@ 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);
M pc/etherelnk3.c => pc/etherelnk3.c +1 -1
@@ 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)
M pc/pcmciamodem.c => pc/pcmciamodem.c +6 -2
@@ 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;
}
M pc/scsi.c => pc/scsi.c +2 -2
@@ 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;
}
}
M pc/trap.c => pc/trap.c +7 -7
@@ 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
M port/devcons.c => port/devcons.c +1 -1
@@ 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 */
M port/pgrp.c => port/pgrp.c +2 -0
@@ 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);
}
M port/portdat.h => port/portdat.h +34 -0
@@ 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*
M port/portfns.h => port/portfns.h +1 -1
@@ 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);