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