1: /*
2: * Declaration of block device
3: * switch. Each entry (row) is
4: * the only link between the
5: * main unix code and the driver.
6: * The initialization of the
7: * device switches is in the
8: * file conf.c.
9: */
10: struct bdevsw {
11: int (*d_open)();
12: int (*d_close)();
13: int (*d_strategy)();
14: void (*d_root)(); /* root attach routine */
15: struct buf *d_tab;
16: };
17: #ifdef KERNEL
18: extern struct bdevsw bdevsw[];
19: #endif
20:
21: /*
22: * Character device switch.
23: */
24: struct cdevsw {
25: int (*d_open)();
26: int (*d_close)();
27: int (*d_read)();
28: int (*d_write)();
29: int (*d_ioctl)();
30: int (*d_stop)();
31: struct tty *d_ttys;
32: #ifdef UCB_NET
33: int (*d_select)();
34: #endif
35: };
36: #ifdef KERNEL
37: extern struct cdevsw cdevsw[];
38: #endif
39:
40: /*
41: * tty line control switch.
42: */
43: struct linesw {
44: int (*l_open)(); /* entry to discipline */
45: int (*l_close)(); /* exit from discipline */
46: int (*l_read)(); /* read routine */
47: char *(*l_write)(); /* write routine */
48: int (*l_ioctl)(); /* ioctl interface to driver */
49: int (*l_input)(); /* received character input */
50: int (*l_output)(); /* character output */
51: int (*l_modem)(); /* modem control notification */
52: };
53: #ifdef KERNEL
54: extern struct linesw linesw[];
55: #endif
Defined struct's
Usage of this include