| plan 9 kernel history: overview | file list | diff list |
2003/0220/port/qio.c (diff list | history)
| 2002/1113/sys/src/9/port/qio.c:38,43 – 2003/0220/sys/src/9/port/qio.c:38,44 (short | long | prev | next) | ||
| 1993/0908 | int eof; /* number of eofs read by user */ | |
| 1993/0530 | void (*kick)(void*); /* restart output */ | |
| 2003/0220 | void (*bypass)(void*, Block*); /* bypass queue altogether */ | |
| 1994/0321 | void* arg; /* argument to kick */ | |
| 1993/0530 | QLock rlock; /* mutex for reading processes */ | |
| 2002/1113/sys/src/9/port/qio.c:795,801 – 2003/0220/sys/src/9/port/qio.c:796,801 | ||
| 1993/0526 | if(q == 0) | |
| 1993/0528 | return 0; | |
| 1998/0328 |
| |
| 1994/0902 | q->limit = q->inilim = limit; | |
| 1993/0526 | q->kick = kick; q->arg = arg; | |
| 2002/1113/sys/src/9/port/qio.c:804,814 – 2003/0220/sys/src/9/port/qio.c:804,831 | ||
| 1993/0601 | q->state |= Qstarve; | |
| 1993/0908 | q->eof = 0; | |
| 1998/0703 | q->noblock = 0; | |
| 1998/0328 |
| |
| 1993/0526 | return q; } | |
| 2003/0220 | /* open a queue to be bypassed */ Queue* qbypass(void (*bypass)(void*, Block*), void *arg) { Queue *q; q = malloc(sizeof(Queue)); if(q == 0) return 0; q->limit = 0; q->arg = arg; q->bypass = bypass; q->state = 0; return q; } | |
| 1993/0526 | static int | |
| 1993/0528 | notempty(void *a) | |
| 1993/0526 | { | |
| 2002/1113/sys/src/9/port/qio.c:1143,1150 – 2003/0220/sys/src/9/port/qio.c:1160,1173 | ||
| 1995/0714 | int n, dowakeup; | |
| 2001/0207 | Proc *p; | |
| 1993/0526 | ||
| 1994/0208 |
| |
| 1995/0714 | n = BLEN(b); | |
| 2003/0220 | if(q->bypass){ (*q->bypass)(q->arg, b); return n; } dowakeup = 0; | |
| 1998/0328 | qlock(&q->wlock); | |
| 1994/0208 | if(waserror()){ | |
| 2000/0913 | if(b != nil) | |