From 48ebc5061d646fd9bb314f20f6a172f4f0cd331c Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Fri, 24 Mar 1995 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1995-03-24 --- pc/scsi.c | 32 ++++++++++++++++---------------- port/devsd.c | 1 + port/sysproc.c | 1 + 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/pc/scsi.c b/pc/scsi.c index f5c97fe35577e48d3da80d9a5d1cf73626e93539..d9e8d256e74678169d4d3ba48c5035b993205ef1 100644 --- a/pc/scsi.c +++ b/pc/scsi.c @@ -81,9 +81,9 @@ scsireset(void) } int -scsiexec(Target *tp, int rw, uchar *cmd, int cbytes, void *data, int *dbytes) +scsiexec(Target *t, int rw, uchar *cmd, int cbytes, void *data, int *dbytes) { - return (*scsi[tp->ctlrno]->io)(tp, rw, cmd, cbytes, data, dbytes); + return (*scsi[t->ctlrno]->io)(t, rw, cmd, cbytes, data, dbytes); } Target* @@ -104,18 +104,18 @@ scsiunit(int ctlr, int unit) static void scsiprobe(Ctlr *ctlr) { - Target *tp; + Target *t; uchar cmd[6]; int i, s, nbytes; for(i = 0; i < NTarget; i++) { - tp = &ctlr->target[i]; + t = &ctlr->target[i]; /* * Test unit ready */ memset(cmd, 0, sizeof(cmd)); - s = scsiexec(tp, SCSIread, cmd, sizeof(cmd), 0, 0); + s = scsiexec(t, SCSIread, cmd, sizeof(cmd), 0, 0); if(s < 0) continue; @@ -123,8 +123,8 @@ scsiprobe(Ctlr *ctlr) * Determine if the drive exists and is not ready or * is simply not responding */ - if((s = scsireqsense(tp, 0, 0)) != STok){ - print("scsi%d: unit %d unavailable, status %d\n", tp->ctlrno, i, s); + if((s = scsireqsense(t, 0, 0)) != STok){ + print("scsi%d: unit %d unavailable, status %d\n", t->ctlrno, i, s); continue; } @@ -132,17 +132,17 @@ scsiprobe(Ctlr *ctlr) * Inquire to find out what the device is * Drivers then use the result to attach to targets */ - memset(tp->inq, 0, Ninq); + memset(t->inq, 0, Ninq); cmd[0] = CMDinquire; cmd[4] = Ninq; nbytes = Ninq; - s = scsiexec(tp, SCSIread, cmd, sizeof(cmd), tp->inq, &nbytes); + s = scsiexec(t, SCSIread, cmd, sizeof(cmd), t->inq, &nbytes); if(s < 0) { - print("scsi%d: unit %d inquire failed, status %d\n", tp->ctlrno, i, s); + print("scsi%d: unit %d inquire failed, status %d\n", t->ctlrno, i, s); continue; } - print("scsi%d: unit %d %s\n", tp->ctlrno, i, tp->inq+8); - tp->ok = 1; + print("scsi%d: unit %d %s\n", t->ctlrno, i, t->inq+8); + t->ok = 1; } } @@ -291,13 +291,13 @@ static char *key[] = }; int -scsireqsense(Target *tp, char lun, int quiet) +scsireqsense(Target *t, char lun, int quiet) { char *s; int sr, try, nbytes; uchar cmd[6], *sense; - sense = tp->scratch; + sense = t->scratch; for(try = 0; try < 5; try++) { memset(cmd, 0, sizeof(cmd)); @@ -307,7 +307,7 @@ scsireqsense(Target *tp, char lun, int quiet) memset(sense, 0, sizeof(sense)); nbytes = Nscratch; - sr = scsiexec(tp, SCSIread, cmd, sizeof(cmd), sense, &nbytes); + sr = scsiexec(t, SCSIread, cmd, sizeof(cmd), sense, &nbytes); if(sr != STok) return sr; @@ -337,7 +337,7 @@ scsireqsense(Target *tp, char lun, int quiet) s = key[sense[2]&0xf]; print("scsi%d: unit %d reqsense: '%s' code #%2.2ux #%2.2ux\n", - tp->ctlrno, tp->target, s, sense[12], sense[13]); + t->ctlrno, t->target, s, sense[12], sense[13]); return STcheck; } diff --git a/port/devsd.c b/port/devsd.c index 17d09f0bf9c36ea9a180c5d6800b0f4ee6b339cc..3ece09fd15a1c1b7babe209176a80fa2f50aa3cf 100644 --- a/port/devsd.c +++ b/port/devsd.c @@ -212,6 +212,7 @@ sdclose(Chan *c) if(c->mode != OWRITE && c->mode != ORDWR) return; +print("sdclose: qid 0x%lux drive %d, part %d\n", c->qid, DRIVE(c->qid), PART(c->qid)); d = &disk[DRIVE(c->qid)]; p = &d->table[PART(c->qid)]; if(strcmp(p->name, "partition")) diff --git a/port/sysproc.c b/port/sysproc.c index 635958fca509bbb634466214a67025022e1dbf84..ddc7f4241081fb6c34b0ce8a58ec7ef6493f6870 100644 --- a/port/sysproc.c +++ b/port/sysproc.c @@ -182,6 +182,7 @@ sysrfork(ulong *arg) if(up->wired) procwired(p); ready(p); + sched(); return pid; }