| plan 9 kernel history: overview | file list | diff list |
1990/11211/port/devcons.c (diff list | history)
| 1990/11161/sys/src/9/port/devcons.c:315,331 – 1990/11211/sys/src/9/port/devcons.c:315,331 (short | long | prev | next) | ||
| 1990/0227 | }; Dirtab consdir[]={ | |
| 1990/0912 |
| |
| 1990/0227 |
| |
| 1990/1018 |
| |
| 1990/0227 |
| |
| 1990/11161 |
| |
| 1990/11211 | "cons", {Qcons}, 0, 0600, "cputime", {Qcputime}, 72, 0600, "log", {Qlog}, BY2PG-8, 0600, "null", {Qnull}, 0, 0600, /* "panic", {Qpanic}, 0, 0666, /**/ "pgrpid", {Qpgrpid}, 12, 0600, "pid", {Qpid}, 12, 0600, "ppid", {Qppid}, 12, 0600, "time", {Qtime}, 12, 0600, "user", {Quser}, 0, 0600, "vmereset", {Qvmereset}, 0, 0600, | |
| 1990/0227 | }; #define NCONS (sizeof consdir/sizeof(Dirtab)) | |
| 1990/11161/sys/src/9/port/devcons.c:405,416 – 1990/11211/sys/src/9/port/devcons.c:405,416 | ||
| 1990/0227 | Chan* consopen(Chan *c, int omode) { | |
| 1990/11211 | if(c->qid.path==Quser && omode==(OWRITE|OTRUNC)){ | |
| 1990/0227 | /* truncate? */ if(strcmp(u->p->pgrp->user, "bootes") == 0) /* BUG */ u->p->pgrp->user[0] = 0; else | |
| 1990/11211 | error(Eperm); | |
| 1990/0227 | } return devopen(c, omode, consdir, NCONS, devgen); } | |
| 1990/11161/sys/src/9/port/devcons.c:418,424 – 1990/11211/sys/src/9/port/devcons.c:418,424 | ||
| 1990/0227 | void conscreate(Chan *c, char *name, int omode, ulong perm) { | |
| 1990/11211 | error(Eperm); | |
| 1990/0227 | } void | |
| 1990/11161/sys/src/9/port/devcons.c:439,445 – 1990/11211/sys/src/9/port/devcons.c:439,445 | ||
| 1990/0227 | if(n <= 0) return n; | |
| 1990/11211 | switch(c->qid.path & ~CHDIR){ | |
| 1990/0227 | case Qdir: return devdirread(c, buf, n, consdir, NCONS, devgen); | |
| 1990/11161/sys/src/9/port/devcons.c:535,541 – 1990/11211/sys/src/9/port/devcons.c:535,541 | ||
| 1990/0227 | long l, m; char *a = va; | |
| 1990/11211 | switch(c->qid.path){ | |
| 1990/0227 | case Qcons: /* * Damn. Can't page fault in putstrn, so copy the data locally. | |
| 1990/11161/sys/src/9/port/devcons.c:564,570 – 1990/11211/sys/src/9/port/devcons.c:564,570 | ||
| 1990/0227 | case Quser: if(u->p->pgrp->user[0]) /* trying to overwrite /dev/user */ | |
| 1990/11211 | error(Eperm); | |
| 1990/0227 | if(c->offset >= NAMELEN-1) return 0; if(c->offset+n >= NAMELEN-1) | |
| 1990/11161/sys/src/9/port/devcons.c:577,583 – 1990/11211/sys/src/9/port/devcons.c:577,583 | ||
| 1990/0227 | case Qpgrpid: case Qpid: case Qppid: | |
| 1990/11211 | error(Eperm); | |
| 1990/0227 | case Qnull: break; | |
| 1990/11161/sys/src/9/port/devcons.c:584,595 – 1990/11211/sys/src/9/port/devcons.c:584,595 | ||
| 1990/11161 | case Qvmereset: if(strcmp(u->p->pgrp->user, "bootes") != 0) | |
| 1990/11211 | error(Eperm); | |
| 1990/11161 | vmereset(); break; | |
| 1990/0227 | default: | |
| 1990/11211 | error(Egreg); | |
| 1990/0227 | } return n; } | |
| 1990/11161/sys/src/9/port/devcons.c:597,621 – 1990/11211/sys/src/9/port/devcons.c:597,609 | ||
| 1990/0227 | void consremove(Chan *c) { | |
| 1990/11211 | error(Eperm); | |
| 1990/0227 | } void conswstat(Chan *c, char *dp) { | |
| 1990/11211 | error(Eperm); | |
| 1990/0720 | } /* | |