1 /*- 2 * ISA Bus Driver specification. 3 * 4 * Copyright (C) 1989-1994, William F. Jolitz. All Rights Reserved. 5 * 6 * $Id$ 7 */ 8 9 /* 10 * Per-device structure. 11 */ 12 struct isa_device { 13 struct isa_driver *id_driver; 14 short id_iobase; /* base i/o address */ 15 short id_irq; /* interrupt request */ 16 short id_drq; /* DMA request */ 17 caddr_t id_maddr; /* physical i/o memory address on bus (if any)*/ 18 int id_msize; /* size of i/o memory */ 19 int id_unit; /* unit number */ 20 int id_alive; /* device is present */ 21 int id_flags; /* private device configuration flags */ 22 }; 23 24 /* 25 * Per-driver structure. 26 * 27 * Each device driver defines entries for a set of routines 28 * as well as an array of types which are acceptable to it. 29 * These are used at boot time by the configuration service. 30 */ 31 struct isa_driver { 32 /* test whether device is present */ 33 int (*probe)(struct isa_device *); 34 /* setup driver for a device */ 35 void (*attach)(struct isa_device *); 36 void (*intr)(int); /* driver interrupt */ 37 char *name; /* driver name */ 38 int *mask; /* spl group (if not zero) */ 39 }; 40 41 /* interface symbols */ 42 #define __ISYM_VERSION__ "1" /* XXX RCS major revision number of hdr file */ 43 #include "isym.h" /* this header has interface symbols */ 44 45 /* functions used in core kernel and modules */ 46 __ISYM__(void, new_isa_configure, (char **, struct isa_driver *)) 47 48 #undef __ISYM__ 49 #undef __ISYM_ALIAS__ 50 #undef __ISYM_VERSION__ 51