## diffname port/devXXX.c 1991/0111 ## diff -e /dev/null /n/bootesdump/1991/0111/sys/src/9/port/devXXX.c 0a /* * template for making a new device */ #include "u.h" #include "lib.h" #include "mem.h" #include "dat.h" #include "fns.h" #include "errno.h" #include "devtab.h" enum{ XXXdirqid, XXXdataqid, }; Dirtab XXXtab[]={ "data", XXXdataqid, 0, 0600, }; #define NXXXtab (sizeof(XXXTab)/sizeof(Dirtab)) void XXXreset(void) { } void XXXinit(void) { } Chan * XXXattach(char *spec) { return devattach('X', spec); } Chan * XXXclone(Chan *c, Chan *nc) { return devclone(c, nc); } int XXXwalk(Chan *c, char *name) { return devwalk(c, name, XXXtab, (long)NXXXtab, devgen); } void XXXstat(Chan *c, char *db) { devstat(c, db, XXXtab, (long)NXXXtab, devgen); } Chan * XXXopen(Chan *c, int omode) { if(c->qid == CHDIR){ if(omode != OREAD) error(0, Eperm); } c->mode = openmode(omode); c->flag |= COPEN; c->offset = 0; return c; } void XXXcreate(Chan *c, char *name, int omode, ulong perm) { error(0, Eperm); } void XXXremove(Chan *c) { error(0, Eperm); } void XXXwstat(Chan *c, char *dp) { error(0, Eperm); } void XXXclose(Chan *c) { } long XXXread(Chan *c, void *a, long n) { switch((int)(c->qid&~CHDIR)){ case XXXdirqid: return devdirread(c, a, n, XXXtab, NXXXtab, devgen); case XXXdataqid: break; default: n=0; break; } return n; } long XXXwrite(Chan *c, char *a, long n) { switch((int)(c->qid&~CHDIR)){ case XXXdataqid: break; default: error(0, Ebadusefd); } return n; } . ## diffname port/devXXX.c 1991/0115 ## diff -e /n/bootesdump/1991/0111/sys/src/9/port/devXXX.c /n/bootesdump/1991/0115/sys/src/9/port/devXXX.c 115c error(Ebadusefd); . 111c switch((int)(c->qid.path&~CHDIR)){ . 96c switch((int)(c->qid.path&~CHDIR)){ . 85c error(Eperm); . 79c error(Eperm); . 73c error(Eperm); . 62c error(Eperm); . 60c if(c->qid.path == CHDIR){ . ## diffname port/devXXX.c 1991/1106 ## diff -e /n/bootesdump/1991/0115/sys/src/9/port/devXXX.c /n/bootesdump/1991/1106/sys/src/9/port/devXXX.c 109c XXXwrite(Chan *c, char *a, long n, ulong offset) . 94c XXXread(Chan *c, void *a, long n, ulong offset) . ## diffname port/devXXX.c 1992/0111 ## diff -e /n/bootesdump/1991/1106/sys/src/9/port/devXXX.c /n/bootesdump/1992/0111/sys/src/9/port/devXXX.c 10c #include "../port/error.h" . ## diffname port/devXXX.c 1992/0321 ## diff -e /n/bootesdump/1992/0111/sys/src/9/port/devXXX.c /n/bootesdump/1992/0321/sys/src/9/port/devXXX.c 6c #include "../port/lib.h" . ## diffname port/devXXX.c 1995/0110 ## diff -e /n/bootesdump/1992/0321/sys/src/9/port/devXXX.c /n/fornaxdump/1995/0110/sys/src/brazil/port/devXXX.c 117a } long XXXbwrite(Chan *c, Block *bp, ulong offset) { return devbwrite(c, bp, offset); . 111,112c switch(c->qid.path & ~CHDIR){ case Qdata: . 107a Block* XXXbread(Chan *c, long n, ulong offset) { return devbread(c, n, offset); } . 99c case Qdata: . 96,97c switch(c->qid.path & ~CHDIR){ case Qdir: . 84a USED(c, dp); . 78a USED(c); . 72a USED(c, name, omode, perm); . 60,67c return devopen(c, omode, XXXtab, NXXXtab, devgen); . 54c devstat(c, db, XXXtab, NXXXtab, devgen); . 48c return devwalk(c, name, XXXtab, NXXXtab, devgen); . 21c #define NXXXtab (sizeof(XXXtab)/sizeof(Dirtab)) . 19c "data", {Qdata, 0}, 0, 0600, . 15,16c Qdir, Qdata, . ## diffname port/devXXX.c 1996/0223 ## diff -e /n/fornaxdump/1995/0110/sys/src/brazil/port/devXXX.c /n/fornaxdump/1996/0223/sys/src/brazil/port/devXXX.c 12d ## diffname port/devXXX.c 1997/0327 ## diff -e /n/fornaxdump/1996/0223/sys/src/brazil/port/devXXX.c /n/emeliedump/1997/0327/sys/src/brazil/port/devXXX.c 125a Dev XXXdevtab = { /* defaults in dev.c */ XXXreset, /* devreset */ XXXinit, /* devinit */ XXXattach, XXXclone, /* devclone */ XXXwalk, XXXstat, XXXopen, XXXcreate, /* devcreate */ XXXclose, XXXread, XXXbread, /* devbread */ XXXwrite, XXXbwrite, /* devbwrite */ XXXremove, /* devremove */ XXXwstat, /* devwstat */ }; . 121,122c static long XXXbwrite(Chan* c, Block* bp, ulong offset) /* default in dev.c */ . 111a USED(a, offset); . 109,110c static long XXXwrite(Chan* c, char* a, long n, ulong offset) . 103,104c static Block* XXXbread(Chan* c, long n, ulong offset) /* default in dev.c */ . 93c return devdirread(c, a, n, XXXtab, nelem(XXXtab), devgen); . 90a USED(offset); . 88,89c static long XXXread(Chan* c, void* a, long n, ulong offset) . 85a USED(c); . 83,84c static void XXXclose(Chan* c) . 76,77c static void XXXwstat(Chan* c, char* dp) /* default in dev.c */ . 69,70c static void XXXremove(Chan* c) /* default in dev.c */ . 62,63c static void XXXcreate(Chan* c, char* name, int omode, ulong perm) /* default in dev.c */ . 59c return devopen(c, omode, XXXtab, nelem(XXXtab), devgen); . 56,57c static Chan* XXXopen(Chan* c, int omode) . 53c devstat(c, db, XXXtab, nelem(XXXtab), devgen); . 50,51c static void XXXstat(Chan* c, char* db) . 47c return devwalk(c, name, XXXtab, nelem(XXXtab), devgen); . 44,45c static int XXXwalk(Chan* c, char* name) . 38,39c static Chan* XXXclone(Chan* c, Chan* nc) /* default in dev.c */ . 32,33c static Chan* XXXattach(char* spec) . 27,28c static void XXXinit(void) /* default in dev.c */ . 22,23c static void XXXreset(void) /* default in dev.c */ . 20d ## diffname port/devXXX.c 1997/0408 ## diff -e /n/emeliedump/1997/0327/sys/src/brazil/port/devXXX.c /n/emeliedump/1997/0408/sys/src/brazil/port/devXXX.c 131a 'X', "XXX", . ## diffname port/devXXX.c 1997/1101 # deleted ## diff -e /n/emeliedump/1997/0408/sys/src/brazil/port/devXXX.c /n/emeliedump/1997/1101/sys/src/brazil/port/devXXX.c 1,150d