| plan 9 kernel history: overview | file list | diff list |
1992/0303/port/devmux.c (diff list | history)
| 1992/0201/sys/src/9/port/devmux.c:292,297 – 1992/0303/sys/src/9/port/devmux.c:292,344 (short | long | prev | next) | ||
| 1991/1114 | } void | |
| 1992/0303 | muxclose(Chan *c) { Block *f1, *f2; Con *cm, *e; Mux *m; int nc; if(c->qid.path&CHDIR) return; m = &muxes[NMUX(c)]; if(!(c->flag&COPEN) || m->srv) return; nc = NCON(c); f1 = 0; f2 = 0; switch(nc) { case Qhead: m->headopen = 0; cm = m->connects; for(e = &cm[Nmux]; cm < e; cm++) if(cm->ref) wakeup(&cm->conq.r); lock(m); if(--m->ref == 0) f1 = muxclq(&m->headq); unlock(m); break; case Qclone: break; default: lock(m); cm = &m->connects[nc-Qoffset]; if(--cm->ref == 0) f1 = muxclq(&cm->conq); if(--m->ref == 0) f1 = muxclq(&m->headq); unlock(m); } if(f1) freeb(f1); if(f2) freeb(f2); } void | |
| 1991/1114 | muxremove(Chan *c) { Mux *m; | |
| 1992/0201/sys/src/9/port/devmux.c:353,405 – 1992/0303/sys/src/9/port/devmux.c:400,405 | ||
| 1991/1115 | m->connects[nc-Qoffset].perm = d.mode; | |
| 1991/1114 | break; } | |
| 1991/1115 |
| |
| 1991/1114 |
| |
| 1991/1117 |
| |
| 1991/1115 |
| |
| 1991/1114 |
| |
| 1991/1115 |
| |
| 1991/1114 |
| |
| 1991/1115 |
| |
| 1991/1114 |
| |
| 1991/1115 |
| |
| 1991/1114 |
| |