| plan 9 kernel history: overview | file list | diff list |
1990/0720/port/devcons.c (diff list | history)
| 1990/0718/sys/src/9/port/devcons.c:290,295 – 1990/0720/sys/src/9/port/devcons.c:290,296 (short | long | prev | next) | ||
| 1990/0227 | Qdir, Qcons, Qcputime, | |
| 1990/0720 | Qlog, | |
| 1990/0227 | Qnull, Qpgrpid, Qpid, | |
| 1990/0718/sys/src/9/port/devcons.c:301,306 – 1990/0720/sys/src/9/port/devcons.c:302,308 | ||
| 1990/0227 | Dirtab consdir[]={ "cons", Qcons, 0, 0600, "cputime", Qcputime, 72, 0600, | |
| 1990/0720 | "log", Qlog, sizeof(SYSLOG->buf), 0600, | |
| 1990/0227 | "null", Qnull, 0, 0600, "pgrpid", Qpgrpid, 12, 0600, "pid", Qpid, 12, 0600, | |
| 1990/0718/sys/src/9/port/devcons.c:496,501 – 1990/0720/sys/src/9/port/devcons.c:498,506 | ||
| 1990/0227 | case Quser: return readstr(c->offset, buf, n, u->p->pgrp->user); | |
| 1990/0720 | case Qlog: return readlog(c->offset, buf, n); | |
| 1990/0227 | case Qnull: return 0; | |
| 1990/0718/sys/src/9/port/devcons.c:587,590 – 1990/0720/sys/src/9/port/devcons.c:592,660 | ||
| 1990/0227 | consuserstr(Error *e, char *buf) { strcpy(buf, u->p->pgrp->user); | |
| 1990/0720 | } /* * crash info */ void sysloginit(void) { Syslog *s; char *p; s = SYSLOG; if(s->magic!=SYSLOGMAGIC || s->next>=&s->buf[sizeof(s->buf)] || s->next<s->buf){ s->next = s->buf; s->magic = SYSLOGMAGIC; } } void syslog(char *p, int n) { int i; Syslog *s; char *end; s = SYSLOG; end = &s->buf[sizeof(s->buf)]; while(n-- > 0){ *s->next++ = *p++; if(s->next >= end) s->next = s->buf; } } long readlog(ulong off, char *buf, ulong n) { Syslog *s; int i; char *p; char *end; s = SYSLOG; /* past end */ if(off >= sizeof(s->buf)) return 0; /* trim length */ if(off + n >= sizeof(s->buf)) n = sizeof(s->buf) - off; /* point to start of area to be read */ end = &s->buf[sizeof(s->buf)]; p = s->next + off; if(p > end) p -= sizeof(s->buf); for(i = 0; i < n; i++){ *buf++ = *p++; if(p >= end) p = s->buf; } return n; | |
| 1990/0227 | } | |