|
|
1.1 root 1: #ifndef SDEV_H
2: #define SDEV_H
3:
4: #include "devadm.h"
5:
6:
7: typedef unsigned int unit_t;
8: typedef unsigned int ipl_t;
9: typedef unsigned int itype_t;
10: typedef unsigned int vec_t;
11: typedef unsigned long cma_t;
12: typedef unsigned long ioa_t;
13:
14:
15: struct sdevice {
16: mdev_t * sd_mdevp; /* master device entry */
17: sdev_t * sd_mnext; /* next unit on master device */
18: sdev_t * sd_next; /* next unit on global thread */
19: sdev_t * sd_link; /* for sorting */
20:
21: symbol_t * sd_devname; /* device name */
22: int sd_config; /* configuration flag */
23: unit_t sd_unit; /* unit number */
24: ipl_t sd_ipl; /* ipl to run interrupt routine */
25: itype_t sd_itype; /* type of interrupt scheme */
26: vec_t sd_vector; /* interrupt vector number */
27:
28: ioa_t sd_ioa [2]; /* I/O address range */
29: cma_t sd_cma [2]; /* controller address space range */
30: };
31:
32:
33: /*
34: * Structure for holding a list of "sdevice" structures.
35: */
36:
37: struct sdlist {
38: sdev_t * sdl_first;
39: sdev_t * sdl_last;
40: };
41:
42:
43: /*
44: * Types for predicate suitable for passing to sdev_sort ()
45: */
46:
47: typedef int (* ssel_t) PROTO ((sdev_t * _sdevp));
48: typedef int (* scmp_t) PROTO ((sdev_t * _left, sdev_t * _right));
49:
50:
51: enum { MAX_VECTOR = 15,
52: MAX_IPL = 8
53: };
54:
55: enum {
56: INT_NONE,
57: INT_PER_CHANNEL,
58: INT_PER_DEVICE,
59: INT_SHAREABLE,
60: MAX_ITYPE = INT_SHAREABLE
61: };
62:
63:
64: EXTERN_C_BEGIN
65:
66: void read_sdev_file PROTO ((CONST char * _inname,
67: CONST char * _outname,
68: VOID * _extra));
69: void read_sdev_string PROTO ((CONST char * _string,
70: VOID * _extra));
71: int sdev_sort PROTO ((sdev_t ** _sdlistp, sdev_t ** _sdendp,
72: ssel_t _selpred, scmp_t _cmppred,
73: size_t _ptroff));
74: void write_sdevice PROTO ((sdev_t * _sdevp, input_t * _input));
75:
76: EXTERN_C_END
77:
78: #endif /* ! defined (SDEV_H) */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.