| plan 9 kernel history: overview | file list | diff list |
1990/0928/gnot/sysfile.c (diff list | history)
| 1990/0928/sys/src/9/gnot/sysfile.c:56,61 – 1990/1009/sys/src/9/gnot/sysfile.c:56,100 (short | long | prev | next) | ||
| 1990/03091 | } long | |
| 1990/1009 | syspipe(ulong *arg) { int fd[2]; Chan *c[2]; Dev *d; validaddr(arg[0], 2*BY2WD, 1); evenaddr(arg[0]); d = &devtab[devno('|', 0)]; c[0] = (*d->attach)(0); c[1] = 0; fd[0] = -1; fd[1] = -1; if(waserror()){ close(c[0]); if(c[1]) close(c[1]); if(fd[0] >= 0) u->fd[fd[0]]=0; if(fd[1] >= 0) u->fd[fd[1]]=0; nexterror(); } c[1] = (*d->clone)(c[0], 0); (*d->walk)(c[0], "data"); (*d->walk)(c[1], "data1"); c[0] = (*d->open)(c[0], ORDWR); c[1] = (*d->open)(c[1], ORDWR); fd[0] = newfd(); u->fd[fd[0]] = c[0]; fd[1] = newfd(); u->fd[fd[1]] = c[1]; ((long*)arg[0])[0] = fd[0]; ((long*)arg[0])[1] = fd[1]; poperror(); return 0; } long | |
| 1990/03091 | sysdup(ulong *arg) { int fd; | |
| 1990/0928/sys/src/9/gnot/sysfile.c:180,187 – 1990/1009/sys/src/9/gnot/sysfile.c:219,226 | ||
| 1990/03091 | Chan *c; long n; | |
| 1990/1009 | c = fdtochan(arg[0], OREAD); validaddr(arg[1], arg[2], 1); | |
| 1990/03091 | qlock(c); if(waserror()){ qunlock(c); | |
| 1990/0928/sys/src/9/gnot/sysfile.c:208,214 – 1990/1009/sys/src/9/gnot/sysfile.c:247,253 | ||
| 1990/03091 | Chan *c; long n; | |
| 1990/1009 | c = fdtochan(arg[0], OWRITE); | |
| 1990/03091 | validaddr(arg[1], arg[2], 0); qlock(c); if(waserror()){ | |
| 1990/0928/sys/src/9/gnot/sysfile.c:380,422 – 1990/1009/sys/src/9/gnot/sysfile.c:419,424 | ||
| 1990/03091 | sysmount(ulong *arg) { return bindmount(arg, 1); | |