|
|
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.