| plan 9 kernel history: overview | file list | diff list |
1990/1106/gnot/devproc.c (diff list | history)
| 1990/0617/sys/src/9/gnot/devproc.c:12,17 – 1990/1106/sys/src/9/gnot/devproc.c:12,18 (short | long | prev | next) | ||
| 1990/03091 | Qctl, Qmem, Qnote, | |
| 1990/1106 | Qnotepg, | |
| 1990/03091 | Qproc, Qstatus, Qtext, | |
| 1990/0617/sys/src/9/gnot/devproc.c:21,26 – 1990/1106/sys/src/9/gnot/devproc.c:22,28 | ||
| 1990/03091 | "ctl", Qctl, 0, 0600, "mem", Qmem, 0, 0600, "note", Qnote, 0, 0600, | |
| 1990/1106 | "notepg", Qnotepg, 0, 0200, | |
| 1990/03091 | "proc", Qproc, sizeof(Proc), 0600, "status", Qstatus, NAMELEN+12+6*12, 0600, "text", Qtext, 0, 0600, | |
| 1990/0617/sys/src/9/gnot/devproc.c:108,113 – 1990/1106/sys/src/9/gnot/devproc.c:110,116 | ||
| 1990/03091 | procopen(Chan *c, int omode) { Proc *p; | |
| 1990/1106 | Pgrp *pg; | |
| 1990/03091 | Orig *o; Chan *tc; | |
| 1990/0617/sys/src/9/gnot/devproc.c:117,122 – 1990/1106/sys/src/9/gnot/devproc.c:120,126 | ||
| 1990/03091 | goto done; } p = proctab(SLOT(c->qid)); | |
| 1990/1106 | pg = p->pgrp; | |
| 1990/03091 | if((p->pid&PIDMASK) != PID(c->qid)) Died: error(0, Eprocdied); | |
| 1990/0617/sys/src/9/gnot/devproc.c:146,156 – 1990/1106/sys/src/9/gnot/devproc.c:150,167 | ||
| 1990/03091 | case Qctl: case Qnote: break; | |
| 1990/1106 | case Qnotepg: if(omode != OWRITE) error(0, Eperm); c->pgrpid = (pg->pgrpid<<PIDSHIFT)|((pg->index+1)<<QSHIFT); break; | |
| 1990/03091 | case Qdir: case Qmem: case Qproc: case Qstatus: | |
| 1990/1106 | if(omode != OREAD) | |
| 1990/03091 | error(0, Eperm); break; default: | |
| 1990/0617/sys/src/9/gnot/devproc.c:347,352 – 1990/1106/sys/src/9/gnot/devproc.c:358,364 | ||
| 1990/03091 | procwrite(Chan *c, void *va, long n) { Proc *p; | |
| 1990/1106 | Pgrp *pg; | |
| 1990/03091 | User *up; | |
| 1990/06021 | KMap *k; | |
| 1990/03091 | char buf[ERRLEN]; | |
| 1990/0617/sys/src/9/gnot/devproc.c:353,358 – 1990/1106/sys/src/9/gnot/devproc.c:365,390 | ||
| 1990/03091 | if(c->qid & CHDIR) error(0, Eisdir); | |
| 1990/1106 | /* * Special case: don't worry about process, just use remembered group */ if(QID(c->qid) == Qnotepg){ pg = pgrptab(SLOT(c->pgrpid)); lock(&pg->debug); if(waserror()){ unlock(&pg->debug); nexterror(); } if((pg->pgrpid&PIDMASK) != PID(c->pgrpid)){ unlock(&pg->debug); goto Died; } pgrpnote(pg, va, n, NUser); unlock(&pg->debug); return n; } | |
| 1990/03091 | p = proctab(SLOT(c->qid)); lock(&p->debug); if(waserror()){ | |