From 7f6fc7e31886fe28b2fc5da83827cdd4fea6e56b Mon Sep 17 00:00:00 2001 From: David du Colombier <0intro@gmail.com> Date: Mon, 13 Jan 1992 00:00:00 +0000 Subject: [PATCH] Plan 9 from Bell Labs 1992-01-13 --- port/devmnt.c | 6 +++--- port/devmux.c | 24 ++++++++++++------------ port/devnonet.c | 4 ++-- port/error.h | 18 ++++++++++-------- 4 files changed, 27 insertions(+), 25 deletions(-) diff --git a/port/devmnt.c b/port/devmnt.c index fa36707b410c8367ef7d59e4a4631c60b6eb19e2..ffdb0c8b9028a312d2f04f6c44b8039f59bd31aa 100644 --- a/port/devmnt.c +++ b/port/devmnt.c @@ -487,7 +487,7 @@ mountrpc(Mnt *m, Mntrpc *r) if(r->reply.type != r->request.type+1) { print("devmnt: mismatched reply 0x%lux T%d R%d tags req %d fls %d rep %d\n", r, r->request.type, r->reply.type, r->request.tag, r->flushtag, r->reply.tag); - errors("protocol error"); + error(Emountrpc); } } @@ -513,12 +513,12 @@ mountio(Mnt *m, Mntrpc *r) else { if(m->mux) { if((*devtab[m->c->type].write)(m->c, r->rpc, n, 0) != n) - error(Eshortmsg); + error(Emountrpc); } else { qlock(&m->c->wrl); if((*devtab[m->c->type].write)(m->c, r->rpc, n, 0) != n) - error(Eshortmsg); + error(Emountrpc); qunlock(&m->c->wrl); } poperror(); diff --git a/port/devmux.c b/port/devmux.c index 4f7810758ddadd54b56ae4fb0be95161667fcd27..8259bf4606195e102e8ac90f807754161fb1e631 100644 --- a/port/devmux.c +++ b/port/devmux.c @@ -221,20 +221,20 @@ muxopen(Chan *c, int omode) switch(NCON(c)) { case Qhead: if(m->headopen) - errors("server channel busy"); + error(Einuse); m->headopen = 1; m->ref++; break; case Qclone: if(m->headopen == 0) - errors("server shutdown"); + error(Emuxshutdown); cm = m->connects; for(e = &cm[Nmux]; cm < e; cm++) if(cm->ref == 0) break; if(cm == e) - errors("all cannels busy"); + error(Emuxbusy); cm->ref = 1; m->ref++; strncpy(cm->user, u->p->user, NAMELEN); @@ -275,7 +275,7 @@ muxcreate(Chan *c, char *name, int omode, ulong perm) } if(m == e) - errors("no multiplexors"); + error(Enomux); strncpy(m->name, name, NAMELEN); strncpy(m->user, u->p->user, NAMELEN); @@ -304,8 +304,8 @@ muxremove(Chan *c) if((c->qid.path&CHDIR) == 0 && m->srv == 0) error(Eperm); - if(strcmp(u->p->user, m->user) != 0) - errors("not owner"); + if(strncmp(u->p->user, m->user, NAMELEN)) + error(Eperm); srv = 0; lock(m); @@ -332,8 +332,8 @@ muxwstat(Chan *c, char *db) error(Eperm); m = &muxes[NMUX(c)]; - if(strcmp(u->p->user, m->user) != 0) - errors("not owner"); + if(strncmp(u->p->user, m->user, NAMELEN)) + error(Eperm); convM2D(db, &d); d.mode &= 0777; @@ -434,11 +434,11 @@ muxhdr(Mux *m, char *h) Con *c; if(h[0] != Tmux || h[2] != 0) - error(Ebadmsg); + error(Emuxmsg); c = &m->connects[h[1]]; if(c < m->connects || c > &m->connects[Nmux]) - error(Ebadmsg); + error(Emuxmsg); if(c->ref == 0) return 0; @@ -476,7 +476,7 @@ muxwrite(Chan *c, void *va, long n, ulong offset) error(Eperm); case Qhead: if(n < 2) - error(Ebadmsg); + error(Emuxmsg); a = (char*)va; memmove(hdr, a, sizeof(hdr)); @@ -610,7 +610,7 @@ muxreadq(Mux *m, Dtq *q, char *va, ulong n) while(!havedata(q)) { sleep(&q->r, havedata, q); if(m->headopen == 0) - errors("server shutdown"); + errors(Emuxshutdown); } nread = 0; diff --git a/port/devnonet.c b/port/devnonet.c index b2ff4251033e525eee7a0cf4ff73099844ff02f6..341c9e5338665f073f4c0c1cf610c5448c0b476b 100644 --- a/port/devnonet.c +++ b/port/devnonet.c @@ -238,7 +238,7 @@ nonetopenclone(Chan *c, Noifc *ifc) } } if(cp == ep) - error(Enodev);; + error(Enodev); return cp; } @@ -276,7 +276,7 @@ nonetopen(Chan *c, int omode) line = STREAMID(c->qid.path); ifc = &noifc[c->dev]; if(ifc->conv[line].state != Cannounced) - errors("channel not announced"); + error(Enolisten); nolisten(c, ifc); break; case Nraddrqid: diff --git a/port/error.h b/port/error.h index dd3e0bea7d327fd8b35c6ad7195552e19986b245..46c5fb60d072a41cca099f1310153bc6133be62a 100644 --- a/port/error.h +++ b/port/error.h @@ -2,6 +2,9 @@ extern char Enoerror[]; /* no error */ extern char Emount[]; /* inconsistent mount */ extern char Eunmount[]; /* not mounted */ extern char Eunion[]; /* not in union */ +extern char Emountrpc[]; /* mount rpc error */ +extern char Eshutdown[]; /* mounted device shut down */ +extern char Enomntdev[]; /* no free mount devices */ extern char Enocreate[]; /* mounted directory forbids creation */ extern char Enonexist[]; /* file does not exist */ extern char Ebadsharp[]; /* unknown device in # filename */ @@ -21,7 +24,7 @@ extern char Ebadbitmap[]; /* unallocated bitmap */ extern char Enobitmap[]; /* out of bitmap descriptors */ extern char Enobitstore[]; /* out of bitmap storage */ extern char Ebadfont[]; /* unallocated font */ -extern char Enofont[]; /* out of font descriptors */ +extern char Enofont[]; /* no free font descriptors */ extern char Eauth[]; /* authentication failure */ extern char Ebadaddr[]; /* bad network address */ extern char Emsgsize[]; /* message is too big for protocol */ @@ -32,8 +35,14 @@ extern char Enoroute[]; /* no free routes */ extern char Enoifc[]; /* bad interface or no free interface slots */ extern char Enolisten[]; /* not announced */ extern char Ehungup[]; /* write to hungup stream */ +extern char Ebadctl[]; /* bad process or stream control request */ extern char Enodev[]; /* no free devices */ extern char Enoenv[]; /* no free environment resources */ +extern char Emuxshutdown[]; /* mux server shut down */ +extern char Emuxbusy[]; /* all mux channels busy */ +extern char Enomux[]; /* no free multiplexers */ +extern char Emuxmsg[]; /* bad mux message format or mismatch */ +extern char Enopipe[]; /* no free pipes */ extern char Enofd[]; /* no free file descriptors */ extern char Ebadfd[]; /* fd out of range or not open */ @@ -42,9 +51,6 @@ extern char Eioload[]; /* i/o error in demand load */ extern char Enochild[]; /* no living children */ extern char Enoseg[]; /* no free segments */ extern char Ebadmount[]; /* inconsistent mount */ -extern char Enomount[]; /* mount table full */ -extern char Enomntdev[]; /* no free mount devices */ -extern char Eshutdown[]; /* mounted device shut down */ extern char Ebaddirread[]; /* directory read not quantized */ extern char Esegaddr[]; /* illegal segment addresses or size */ extern char Eprocdied[]; /* process exited */ @@ -53,19 +59,15 @@ extern char Enoqueue[]; /* no free stream queues */ extern char Ebadld[]; /* illegal line discipline */ extern char Enostream[]; /* no free stream heads */ extern char Ebadnet[]; /* illegal network address */ -extern char Ebadctl[]; /* bad process or stream control request */ extern char Enonote[]; /* note overflow */ extern char Eintr[]; /* interrupted */ extern char Edestbusy[]; /* datakit destination busy */ extern char Edestotl[]; /* datakit destination out to lunch */ extern char Enetotl[]; /* datakit controller out to lunch */ extern char Erejected[]; /* datakit destination rejected call */ -extern char Eshortmsg[]; /* short message */ -extern char Ebadmsg[]; /* format error or mismatch in message */ extern char Ebadcnt[]; /* read count greater than requested */ extern char Enovmem[]; /* virtual memory allocation failed */ extern char Enoasync[]; /* out of async stream modules */ -extern char Enopipe[]; /* out of pipes */ extern char Enetunreach[]; /* network unreachable */ extern char Etimedout[]; /* connection timed out */ extern char Econrefused[]; /* connection refused */