|
|
1.1 ! root 1: /* ! 2: * structures defining driver entry points ! 3: * tables of pointers to, e.g., struct bdevsw are declared in conf.c ! 4: * the structures themselves are defined in the drivers that use them ! 5: * ! 6: * the init macros are used just to check the number of arguments ! 7: */ ! 8: struct bdevsw ! 9: { ! 10: int (*d_open)(); ! 11: int (*d_close)(); ! 12: int (*d_strategy)(); ! 13: int d_flags; ! 14: }; ! 15: #ifdef KERNEL ! 16: extern struct bdevsw *bdevsw[]; ! 17: extern struct bdevsw nullbdev; ! 18: extern int nblkdev; ! 19: #define bdinit(open, close, strat, flag) {open, close, strat, flag} ! 20: #endif ! 21: ! 22: /* ! 23: * Character device switch. ! 24: */ ! 25: extern struct cdevsw ! 26: { ! 27: int (*d_open)(); ! 28: int (*d_close)(); ! 29: int (*d_read)(); ! 30: int (*d_write)(); ! 31: int (*d_ioctl)(); ! 32: int (*d_reset)(); /* ??? */ ! 33: struct streamtab *qinfo; ! 34: }; ! 35: #ifdef KERNEL ! 36: extern struct cdevsw *cdevsw[]; ! 37: extern struct cdevsw nullcdev; ! 38: extern int nchrdev; ! 39: #define cdinit(open, close, read, write, ioctl) {open, close, read, write, ioctl, nulldev, NULL} ! 40: #define cstrinit(stream) {nodev, nulldev, nodev, nodev, nodev, nulldev, stream} ! 41: #endif ! 42: ! 43: /* file system types */ ! 44: struct fstypsw { ! 45: int (*t_put)(); ! 46: int (*t_updat)(); ! 47: int (*t_read)(); ! 48: int (*t_write)(); ! 49: int (*t_trunc)(); ! 50: int (*t_stat)(); ! 51: int (*t_nami)(); ! 52: int (*t_mount)(); ! 53: int (*t_ioctl)(); ! 54: struct inode * (*t_open)(); ! 55: int (*t_dirread)(); ! 56: }; ! 57: #ifdef KERNEL ! 58: extern struct fstypsw *fstypsw[]; ! 59: extern nfstyp; ! 60: #define fsinit(put, updat, read, write, trunc, stat, nami, mount, ioctl, open, dir) \ ! 61: {put, updat, read, write, trunc, stat, nami, mount, ioctl, open, dir} ! 62: #endif ! 63: ! 64: /* ! 65: * stream processor table ! 66: */ ! 67: struct streamtab { ! 68: struct qinit *rdinit; ! 69: struct qinit *wrinit; ! 70: }; ! 71: ! 72: #ifdef KERNEL ! 73: extern struct streamtab *streamtab[]; ! 74: extern struct streamtab nullstream; ! 75: extern int nstreamtab; ! 76: #endif ! 77: ! 78: /* ! 79: * Swap device information ! 80: */ ! 81: struct swdevt ! 82: { ! 83: dev_t sw_dev; ! 84: daddr_t sw_size; ! 85: int sw_freed; ! 86: }; ! 87: #ifdef KERNEL ! 88: extern struct swdevt swdevt[]; ! 89: int nswdevt; ! 90: ! 91: extern struct inode *nullopen(); ! 92: extern int nullnami(); ! 93: extern int nulldev(), nodev(); ! 94: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.