xref: /386bsd/usr/src/kernel/include/dev/isa_driver.h (revision dc8b130e)
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