| plan 9 kernel history: overview | file list | diff list |
1991/1101/port/sysfile.c (diff list | history)
| 1991/1018/sys/src/9/port/sysfile.c:268,276 – 1991/1101/sys/src/9/port/sysfile.c:268,278 (short | long | prev | next) | ||
| 1990/0227 | n = unionread(c, (void*)arg[1], n); else | |
| 1991/0411 | n = (*devtab[c->type].read)(c, (void*)arg[1], n, c->offset); | |
| 1990/0227 |
| |
| 1991/0614 |
| |
| 1991/0411 | qunlock(&c->rdl); | |
| 1991/1101 | poperror(); lock(&c->offl); c->offset += n; unlock(&c->offl); | |
| 1990/0227 | return n; } | |
| 1991/1018/sys/src/9/port/sysfile.c:291,299 – 1991/1101/sys/src/9/port/sysfile.c:293,303 | ||
| 1990/11211 | if(c->qid.path & CHDIR) error(Eisdir); | |
| 1991/0411 | n = (*devtab[c->type].write)(c, (void*)arg[1], arg[2], c->offset); | |
| 1990/0227 |
| |
| 1991/0614 |
| |
| 1991/0411 | qunlock(&c->wrl); | |
| 1991/1101 | poperror(); lock(&c->offl); c->offset += n; unlock(&c->offl); | |
| 1990/0227 | return n; } | |
| 1991/1018/sys/src/9/port/sysfile.c:310,329 – 1991/1101/sys/src/9/port/sysfile.c:314,330 | ||
| 1990/11211 | error(Eisdir); | |
| 1991/0319 | if(devchar[c->type] == '|') error(Eisstream); | |
| 1991/0411 |
| |
| 1990/0227 |
| |
| 1991/0411 |
| |
| 1990/0227 |
| |
| 1991/1101 | off = 0; | |
| 1990/0227 | switch(arg[2]){ case 0: | |
| 1991/1101 | off = c->offset = arg[1]; | |
| 1990/0227 | break; case 1: | |
| 1991/1101 | lock(&c->offl); /* lock for read/write update */ | |
| 1990/0227 | c->offset += (long)arg[1]; | |
| 1991/1101 | off = c->offset; unlock(&c->offl); | |
| 1990/0227 | break; case 2: | |
| 1991/1018/sys/src/9/port/sysfile.c:330,341 – 1991/1101/sys/src/9/port/sysfile.c:331,339 | ||
| 1990/0227 | (*devtab[c->type].stat)(c, buf); convM2D(buf, &dir); c->offset = dir.length + (long)arg[1]; | |
| 1991/1101 | off = c->offset; | |
| 1990/0227 | break; } | |
| 1991/0614 |
| |
| 1991/0411 |
| |
| 1990/0227 | return off; } | |