| plan 9 kernel history: overview | file list | diff list |
1990/0717/port/sturp.c (diff list | history)
| 1990/0707/sys/src/9/port/sturp.c:7,13 – 1990/0717/sys/src/9/port/sturp.c:7,12 (short | long | prev | next) | ||
| 1990/0312 | #include "errno.h" | |
| 1990/0227 | enum { | |
| 1990/0312 | Nmask= 0x7, | |
| 1990/0227 | }; | |
| 1990/0707/sys/src/9/port/sturp.c:97,103 – 1990/0717/sys/src/9/port/sturp.c:96,102 | ||
| 1990/0312 | #define OPEN 0x8 #define CLOSING 0x10 | |
| 1990/0227 |
| |
| 1990/0717 | Urp *urp; | |
| 1990/0227 | /* * predeclared | |
| 1990/0707/sys/src/9/port/sturp.c:121,126 – 1990/0717/sys/src/9/port/sturp.c:120,132 | ||
| 1990/0227 | ||
| 1990/0312 | Qinfo urpinfo = { urpciput, urpoput, urpopen, urpclose, "urp" }; | |
| 1990/0227 | ||
| 1990/0717 | void urpreset(void) { newqinfo(&urpinfo); urp = (Urp *)ialloc(conf.nurp*sizeof(Urp), 0); } | |
| 1990/0312 | static void | |
| 1990/0227 | urpopen(Queue *q, Stream *s) { | |
| 1990/0707/sys/src/9/port/sturp.c:131,144 – 1990/0717/sys/src/9/port/sturp.c:137,153 | ||
| 1990/0227 | /* * find a free urp structure */ | |
| 1990/0717 | for(up = urp; up < &urp[conf.nurp]; up++){ | |
| 1990/0227 | qlock(up); if(up->state == 0) break; qunlock(up); } | |
| 1990/0717 | if(up == &urp[conf.nurp]){ q->ptr = 0; WR(q)->ptr = 0; | |
| 1990/0227 | error(0, Egreg); | |
| 1990/0717 | } | |
| 1990/0227 | ||
| 1990/0312 | q->ptr = q->other->ptr = up; | |
| 1990/0227 | up->rq = q; | |
| 1990/0707/sys/src/9/port/sturp.c:177,182 – 1990/0717/sys/src/9/port/sturp.c:186,193 | ||
| 1990/0227 | int i; up = (Urp *)q->ptr; | |
| 1990/0717 | if(up == 0) return; | |
| 1990/0227 | /* | |
| 1990/0312 | * wait for all outstanding messages to drain, tell kernel | |
| 1990/0707/sys/src/9/port/sturp.c:967,973 – 1990/0717/sys/src/9/port/sturp.c:978,984 | ||
| 1990/0629 | { Urp *up; | |
| 1990/0717 | for(up = urp; up < &urp[conf.nurp]; up++) | |
| 1990/0629 | if(up->rq) urpvomit("", up); | |
| 1990/0227 | } rm: /tmp/sd.85068.*: No such file or directory | |