| plan 9 kernel history: overview | file list | diff list |
1991/0926/port/stream.c (diff list | history)
| 1991/0904/sys/src/9/port/stream.c:791,797 – 1991/0926/sys/src/9/port/stream.c:791,796 (short | long | prev | next) | ||
| 1990/0227 | /* * hang a device and process q off the stream */ | |
| 1991/0504 |
| |
| 1990/0227 | s->inuse = 1; | |
| 1990/1009 | if(noopen) s->opens = 0; | |
| 1991/0904/sys/src/9/port/stream.c:808,814 – 1991/0926/sys/src/9/port/stream.c:807,812 | ||
| 1990/0227 | RD(s->procq)->next = 0; RD(s->devq)->next = RD(s->procq); WR(s->devq)->next = 0; | |
| 1991/0809 |
| |
| 1990/0227 | if(qi->open) (*qi->open)(RD(s->devq), s); | |
| 1991/0904/sys/src/9/port/stream.c:1264,1273 – 1991/0926/sys/src/9/port/stream.c:1262,1271 | ||
| 1990/0312 | streamwrite(Chan *c, void *a, long n, int docopy) | |
| 1990/0227 | { Stream *s; | |
| 1991/0926 | Block *bp, *first, *last; | |
| 1990/0227 | ||
| 1990/0911 | s = c->stream; | |
| 1991/0904/sys/src/9/port/stream.c:1289,1348 – 1991/0926/sys/src/9/port/stream.c:1287,1319 | ||
| 1991/0411 | } | |
| 1990/0227 | ||
| 1991/0502 | /* | |
| 1991/0926 | * copy the whole write into kernel space | |
| 1991/0502 | */ | |
| 1991/0926 | first = last = 0; for(rem = n; ; rem -= i) { bp = allocb(rem); i = bp->lim - bp->wptr; if(i >= rem) i = rem; memmove(bp->wptr, a, i); bp->wptr += i; | |
| 1991/0502 | bp->type = M_DATA; | |
| 1991/0926 | a = ((char*)a) + i; if(first == 0) first = bp; else last->next = bp; last = bp; if(i == rem) break; | |
| 1991/0502 | } | |
| 1990/0227 |
| |
| 1990/0403 |
| |
| 1990/0227 |
| |
| 1990/0403 |
| |
| 1990/0227 |
| |
| 1991/0318 |
| |
| 1990/0227 |
| |
| 1991/0318 |
| |
| 1990/0227 |
| |
| 1991/0502 |
| |
| 1991/0926 | /* * send it down stream */ last->flags |= S_DELIM; FLOWCTL(q); PUTNEXT(q, first); | |
| 1990/0227 | return n; | |
| 1990/0312 | } | |