| plan 9 kernel history: overview | file list | diff list |
1996/0122/port/devtinyfs.c (diff list | history)
| 1996/0120/sys/src/9/port/devtinyfs.c:17,28 – 1996/0122/sys/src/9/port/devtinyfs.c:17,39 (short | long | prev | next) | ||
| 1996/0120 | Qmedium, | |
| 1996/0116 | }; | |
| 1996/0122 | typedef struct FS FS; | |
| 1996/0116 |
| |
| 1996/0122 | struct FS { | |
| 1996/0116 | QLock; | |
| 1996/0122 | Ref r; int dev; FS *next; | |
| 1996/0116 | Chan *c; | |
| 1996/0120 |
| |
| 1996/0122 | Dirtab *file; | |
| 1996/0116 | int nfile; | |
| 1996/0122 | int maxfile; }; struct { QLock; FS *l; int hidev; | |
| 1996/0116 | } tinyfs; void | |
| 1996/0120/sys/src/9/port/devtinyfs.c:46,54 – 1996/0122/sys/src/9/port/devtinyfs.c:57,90 | ||
| 1996/0116 | Chan * tinyfsattach(char *spec) { | |
| 1996/0120 |
| |
| 1996/0122 | FS *fs, **l; Chan *c, *cc; | |
| 1996/0120 | ||
| 1996/0116 |
| |
| 1996/0122 | cc = namec((char*)arg[0], Aopen, arg[1], 0); qlock(&tinyfs); l = &tinyfs.l; for(fs = tinyfs.l; fs != 0; fs = fs->next){ if(eqchan(c, fs->c)) break; l = &(fs->next); } if(fs){ incref(&fs->r); qunlock(&tinyfs); close(cc); } else { fs = smalloc(sizeof(*fs)); *l = fs; fs->c = cc; incref(&fs->r); qunlock(&tinyfs); } c = devattach('E', spec); c->aux = fs; c->dev = fs->dev; return c; | |
| 1996/0116 | } Chan * | |