| plan 9 kernel history: overview | file list | diff list |
1992/0520/port/devsrv.c (diff list | history)
| 1992/0321/sys/src/9/port/devsrv.c:127,132 – 1992/0520/sys/src/9/port/devsrv.c:127,133 (short | long | prev | next) | ||
| 1992/0114 | exhausted("server slots"); | |
| 1991/1219 | sp = &srv[j]; sp->chan = c; | |
| 1992/0520 | incref(c); | |
| 1991/1219 | unlock(&srvlk); | |
| 1990/1002 | poperror(); | |
| 1991/1219 | strncpy(sp->name, name, NAMELEN); | |
| 1992/0321/sys/src/9/port/devsrv.c:188,197 – 1992/0520/sys/src/9/port/devsrv.c:189,196 | ||
| 1991/1127 | Fgrp *f; | |
| 1990/0227 | int i, fd; char buf[32]; | |
| 1992/0520 | Chan *c1; | |
| 1990/0227 | ||
| 1991/0828 |
| |
| 1991/1219 |
| |
| 1990/11211 |
| |
| 1990/1110 | if(n >= sizeof buf) | |
| 1990/11211 | error(Egreg); | |
| 1991/0318 | memmove(buf, va, n); /* so we can NUL-terminate */ | |
| 1992/0321/sys/src/9/port/devsrv.c:198,203 – 1992/0520/sys/src/9/port/devsrv.c:197,203 | ||
| 1990/0227 | buf[n] = 0; fd = strtoul(buf, 0, 0); | |
| 1991/1127 | f = u->p->fgrp; | |
| 1992/0520 | ||
| 1991/1127 | lock(f); | |
| 1992/0226 | if(waserror()){ unlock(f); | |
| 1992/0321/sys/src/9/port/devsrv.c:204,212 – 1992/0520/sys/src/9/port/devsrv.c:204,226 | ||
| 1992/0226 | nexterror(); } | |
| 1991/1011 | fdtochan(fd, -1, 0); /* error check only */ | |
| 1991/1219 |
| |
| 1992/0520 | c1 = f->fd[fd]; incref(c1); | |
| 1991/1127 | unlock(f); | |
| 1992/0520 | poperror(); lock(&srvlk); if (waserror()) { unlock(&srvlk); close(c1); nexterror(); } i = c->qid.path; if(srv[i].chan != c) /* already been written to */ error(Egreg); close(c); srv[i].chan = c1; unlock(&srvlk); | |
| 1992/0226 | poperror(); | |
| 1990/0227 | return n; } | |