| plan 9 kernel history: overview | file list | diff list |
1992/0114/port/devproc.c (diff list | history)
| 1992/0111/sys/src/9/port/devproc.c:174,180 – 1992/0114/sys/src/9/port/devproc.c:174,180 (short | long | prev | next) | ||
| 1990/11211 | c->pgrpid.vers = pg->pgrpid; | |
| 1990/1110 | break; | |
| 1990/0227 | default: | |
| 1992/0114 | pprint("procopen %lux\n", c->qid); | |
| 1990/11211 | error(Egreg); | |
| 1990/0227 | } | |
| 1991/1110 | ||
| 1992/0111/sys/src/9/port/devproc.c:349,355 – 1992/0114/sys/src/9/port/devproc.c:349,355 | ||
| 1991/0705 | if(offset+n > j) n = j-offset; | |
| 1991/1112 | if(n == 0 && offset == 0) | |
| 1992/0114 | exhausted("segments"); | |
| 1991/0705 | memmove(a, &statbuf[offset], n); return n; | |
| 1990/0227 | } | |
| 1992/0111/sys/src/9/port/devproc.c:392,398 – 1992/0114/sys/src/9/port/devproc.c:392,398 | ||
| 1990/0227 | switch(QID(c->qid)){ | |
| 1991/1109 | case Qmem: | |
| 1991/1110 | if(p->state != Stopped) | |
| 1992/0114 | error(Ebadctl); | |
| 1991/1110 | ||
| 1991/1124 | if(offset >= USERADDR && offset <= USERADDR+BY2PG-1) { | |
| 1991/1110 | pg = p->upage; | |
| 1992/0111/sys/src/9/port/devproc.c:411,417 – 1992/0114/sys/src/9/port/devproc.c:411,417 | ||
| 1991/1111 | ur = pxu->dbgreg; if(offset < (ulong)ur || hi > (ulong)ur+sizeof(Ureg)) { | |
| 1991/1110 | kunmap(k); | |
| 1992/0114 | error(Ebadarg); | |
| 1991/1110 | } | |
| 1991/1111 | ur = (Ureg*)(b+((ulong)ur-USERADDR)); setregisters(ur, b+(offset-USERADDR), a, n); | |
| 1992/0111/sys/src/9/port/devproc.c:427,433 – 1992/0114/sys/src/9/port/devproc.c:427,433 | ||
| 1991/1110 | ||
| 1990/0227 | case Qnote: | |
| 1991/1112 | if(p->kp) | |
| 1991/1116 |
| |
| 1992/0114 | error(Eperm); | |
| 1990/0614 | k = kmap(p->upage); up = (User*)VA(k); | |
| 1990/0227 | if(up->p != p){ | |
| 1992/0111/sys/src/9/port/devproc.c:441,447 – 1992/0114/sys/src/9/port/devproc.c:441,447 | ||
| 1991/0318 | memmove(buf, va, n); | |
| 1990/0227 | buf[n] = 0; if(!postnote(p, 0, buf, NUser)) | |
| 1990/11211 |
| |
| 1992/0114 | exhausted("notes"); | |
| 1990/0227 | break; | |
| 1991/1110 | ||
| 1990/0227 | default: | |
| 1992/0111/sys/src/9/port/devproc.c:462,468 – 1992/0114/sys/src/9/port/devproc.c:462,468 | ||
| 1991/1110 | s = p->seg[TSEG]; | |
| 1991/1112 | if(s == 0) | |
| 1992/0114 | error(Enonexist); | |
| 1991/1112 | if(p->state==Dead) | |
| 1991/1110 | error(Eprocdied); | |
| 1992/0111/sys/src/9/port/devproc.c:524,530 – 1992/0114/sys/src/9/port/devproc.c:524,530 | ||
| 1991/1110 | int pid; if(p->pdbg) | |
| 1992/0114 | error(Einuse); | |
| 1991/1110 | if(procstopped(p)) return; | |
| 1992/0111/sys/src/9/port/devproc.c:573,579 – 1992/0114/sys/src/9/port/devproc.c:573,579 | ||
| 1991/1112 | procstopwait(p, 0); else if(strncmp(buf, "startstop", 9) == 0) { | |
| 1991/1110 | if(p->state != Stopped) | |
| 1992/0114 | error(Ebadctl); | |
| 1991/1110 | p->procctl = Proc_traceme; ready(p); procstopwait(p, Proc_traceme); | |
| 1992/0111/sys/src/9/port/devproc.c:580,586 – 1992/0114/sys/src/9/port/devproc.c:580,586 | ||
| 1991/1110 | } | |
| 1991/1112 | else if(strncmp(buf, "start", 5) == 0) { | |
| 1991/1109 | if(p->state != Stopped) | |
| 1992/0114 | error(Ebadctl); | |
| 1991/1109 | ready(p); } | |
| 1991/1112 | else | |
| 1992/0111/sys/src/9/port/devproc.c:607,613 – 1992/0114/sys/src/9/port/devproc.c:607,613 | ||
| 1991/1113 | for(;;) { s = seg(p, offset, 1); if(s == 0) | |
| 1992/0114 | error(Ebadarg); | |
| 1991/1109 | ||
| 1991/1113 | if(offset+n >= s->top) n = s->top-offset; | |