Annotation of lucent/sys/src/9/port/f002550, revision 1.1.1.1

1.1       root        1: /*
                      2:  *  template for making a new device
                      3:  */
                      4: 
                      5: #include       "u.h"
                      6: #include       "../port/lib.h"
                      7: #include       "mem.h"
                      8: #include       "dat.h"
                      9: #include       "fns.h"
                     10: #include       "../port/error.h"
                     11: 
                     12: #include       "devtab.h"
                     13: 
                     14: enum{
                     15:        XXXdirqid,
                     16:        XXXdataqid,
                     17: };
                     18: Dirtab XXXtab[]={
                     19:        "data",         {XXXdataqid, 0},        0,      0600,
                     20: };
                     21: #define NXXXtab (sizeof(XXXtab)/sizeof(Dirtab))
                     22: 
                     23: void
                     24: XXXreset(void)
                     25: {
                     26: }
                     27: 
                     28: void
                     29: XXXinit(void)
                     30: {
                     31: }
                     32: 
                     33: Chan *
                     34: XXXattach(char *spec)
                     35: {
                     36:        return devattach('X', spec);
                     37: }
                     38: 
                     39: Chan *
                     40: XXXclone(Chan *c, Chan *nc)
                     41: {
                     42:        return devclone(c, nc);
                     43: }
                     44: 
                     45: int
                     46: XXXwalk(Chan *c, char *name)
                     47: {
                     48:        return devwalk(c, name, XXXtab, NXXXtab, devgen);
                     49: }
                     50: 
                     51: void
                     52: XXXstat(Chan *c, char *db)
                     53: {
                     54:        devstat(c, db, XXXtab, NXXXtab, devgen);
                     55: }
                     56: 
                     57: Chan *
                     58: XXXopen(Chan *c, int omode)
                     59: {
                     60:        return devopen(c, omode, XXXtab, NXXXtab, devgen);
                     61: }
                     62: 
                     63: void
                     64: XXXcreate(Chan *c, char *name, int omode, ulong perm)
                     65: {
                     66:        USED(c, name, omode, perm);
                     67:        error(Eperm);
                     68: }
                     69: 
                     70: void
                     71: XXXremove(Chan *c)
                     72: {
                     73:        USED(c);
                     74:        error(Eperm);
                     75: }
                     76: 
                     77: void
                     78: XXXwstat(Chan *c, char *dp)
                     79: {
                     80:        USED(c, dp);
                     81:        error(Eperm);
                     82: }
                     83: 
                     84: void
                     85: XXXclose(Chan *c)
                     86: {
                     87: }
                     88: 
                     89: long
                     90: XXXread(Chan *c, void *a, long n, ulong offset)
                     91: {
                     92:        switch(c->qid.path & ~CHDIR){
                     93:        case XXXdirqid:
                     94:                return devdirread(c, a, n, XXXtab, NXXXtab, devgen);
                     95:        case XXXdataqid:
                     96:                break;
                     97:        default:
                     98:                n=0;
                     99:                break;
                    100:        }
                    101:        return n;
                    102: }
                    103: 
                    104: long
                    105: XXXwrite(Chan *c, char *a, long n, ulong offset)
                    106: {
                    107:        switch(c->qid.path & ~CHDIR){
                    108:        case XXXdataqid:
                    109:                break;
                    110:        default:
                    111:                error(Ebadusefd);
                    112:        }
                    113:        return n;
                    114: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.