| plan 9 kernel history: overview | file list | diff list |
1997/1105/port/qio.c (diff list | history)
| 1997/1104/sys/src/9/port/qio.c:21,27 – 1997/1105/sys/src/9/port/qio.c:21,27 (short | long | prev | next) | ||
| 1997/0327 | ||
| 1994/0323 | static int debuging; | |
| 1997/1104 |
| |
| 1997/1105 | #define QDEBUG if(0) | |
| 1994/0902 | ||
| 1993/0526 | /* | |
| 1993/0530 | * IO queues | |
| 1997/1104/sys/src/9/port/qio.c:115,122 – 1997/1105/sys/src/9/port/qio.c:115,120 | ||
| 1997/0925 | ulong addr; int n; | |
| 1997/1104 |
| |
| 1997/0925 | n = sizeof(Block) + size + (BY2V-1); b = mallocz(n+Hdrspc, 0); if(b == 0) | |
| 1997/1104/sys/src/9/port/qio.c:150,157 – 1997/1105/sys/src/9/port/qio.c:148,153 | ||
| 1994/0322 | return 0; } | |
| 1997/0925 | ||
| 1997/1104 |
| |
| 1997/0925 | n = sizeof(Block) + size + (BY2V-1); | |
| 1997/0926 | b = mallocz(n+Hdrspc, 0); | |
| 1997/0925 | if(b == nil){ | |
| 1997/1104/sys/src/9/port/qio.c:797,803 – 1997/1105/sys/src/9/port/qio.c:793,798 | ||
| 1995/0714 | Block *b, *nb; | |
| 1994/1116 | int n, dowakeup; | |
| 1993/0526 | ||
| 1997/1104 |
| |
| 1993/0526 | qlock(&q->rlock); | |
| 1993/0527 | if(waserror()){ qunlock(&q->rlock); | |
| 1997/1104/sys/src/9/port/qio.c:826,837 – 1997/1105/sys/src/9/port/qio.c:821,829 | ||
| 1993/0527 | ||
| 1995/0714 | q->state |= Qstarve; /* flag requesting producer to wake me */ iunlock(q); | |
| 1997/1104 |
| |
| 1995/0714 | sleep(&q->rr, notempty, q); | |
| 1997/1104 |
| |
| 1993/0526 | } | |
| 1997/1104 |
| |
| 1993/0528 | /* remove a buffered block */ q->bfirst = b->next; | |
| 1997/0327 | b->next = 0; | |
| 1997/1104/sys/src/9/port/qio.c:848,854 – 1997/1105/sys/src/9/port/qio.c:840,845 | ||
| 1993/0527 | ||
| 1997/1102 | /* split block if it's too big and this is not a message-oriented queue */ | |
| 1995/0714 | nb = b; | |
| 1997/1104 |
| |
| 1995/0714 | if(n > len){ if((q->state&Qmsg) == 0){ | |
| 1995/0917 | iunlock(q); | |
| 1997/1104/sys/src/9/port/qio.c:879,885 – 1997/1105/sys/src/9/port/qio.c:870,875 | ||
| 1993/0528 | ||
| 1993/0527 | poperror(); | |
| 1993/0526 | qunlock(&q->rlock); | |
| 1997/1104 |
| |
| 1995/0714 | return nb; | |
| 1993/0526 | } | |
| 1997/1104/sys/src/9/port/qio.c:892,908 – 1997/1105/sys/src/9/port/qio.c:882,894 | ||
| 1995/0714 | { Block *b; | |
| 1997/1104 |
| |
| 1995/0714 | b = qbread(q, len); | |
| 1997/1104 |
| |
| 1995/0714 | if(b == 0) return 0; len = BLEN(b); memmove(vp, b->rp, len); | |
| 1997/1104 |
| |
| 1995/0714 | freeb(b); | |
| 1997/1104 |
| |
| 1995/0714 | return len; } | |