1 /* $OpenBSD: eisavar.h,v 1.12 2003/12/12 22:56:46 hshoexer Exp $ */
2 /* $NetBSD: eisavar.h,v 1.11 1997/06/06 23:30:07 thorpej Exp $ */
3
4 /*
5 * Copyright (c) 1995, 1996 Christopher G. Demetriou
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 * 3. All advertising materials mentioning features or use of this software
17 * must display the following acknowledgement:
18 * This product includes software developed by Christopher G. Demetriou
19 * for the NetBSD Project.
20 * 4. The name of the author may not be used to endorse or promote products
21 * derived from this software without specific prior written permission
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
24 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
25 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
26 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
27 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
28 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
32 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 */
34
35 #ifndef _DEV_EISA_EISAVAR_H_
36 #define _DEV_EISA_EISAVAR_H_
37
38 /*
39 * Definitions for EISA autoconfiguration.
40 *
41 * This file describes types and functions which are used for EISA
42 * configuration. Some of this information is machine-specific, and is
43 * separated into eisa_machdep.h.
44 */
45
46 #include <machine/bus.h>
47 #include <dev/eisa/eisareg.h> /* For ID register & string info. */
48
49 /*
50 * Structures and definitions needed by the machine-dependent header.
51 */
52 struct eisabus_attach_args;
53
54 /*
55 * Machine-dependent definitions.
56 */
57 #if (__alpha__ + __i386__ + __arc__ + __hppa__ != 1)
58 #error COMPILING FOR UNSUPPORTED MACHINE, OR MORE THAN ONE.
59 #endif
60 #if __alpha__
61 #include <alpha/eisa/eisa_machdep.h>
62 #endif
63 #if __i386__
64 #include <i386/eisa/eisa_machdep.h>
65 #endif
66 #if __arc__
67 #include <arc/eisa/eisa_machdep.h>
68 #endif
69 #if __hppa__
70 #include <hppa/include/eisa_machdep.h>
71 #endif
72
73 typedef int eisa_slot_t; /* really only needs to be 4 bits */
74
75 /*
76 * EISA bus attach arguments.
77 */
78 struct eisabus_attach_args {
79 char *eba_busname; /* XXX should be common */
80 bus_space_tag_t eba_iot; /* eisa i/o space tag */
81 bus_space_tag_t eba_memt; /* eisa mem space tag */
82 bus_dma_tag_t eba_dmat; /* DMA tag */
83 eisa_chipset_tag_t eba_ec;
84 };
85
86 /*
87 * EISA device attach arguments.
88 */
89 struct eisa_attach_args {
90 bus_space_tag_t ea_iot; /* eisa i/o space tag */
91 bus_space_tag_t ea_memt; /* eisa mem space tag */
92 bus_dma_tag_t ea_dmat; /* DMA tag */
93 eisa_chipset_tag_t ea_ec;
94
95 eisa_slot_t ea_slot;
96 u_int8_t ea_vid[EISA_NVIDREGS];
97 u_int8_t ea_pid[EISA_NPIDREGS];
98 char ea_idstring[EISA_IDSTRINGLEN];
99 };
100
101 /*
102 * Locators for EISA devices, as specified to config.
103 */
104 #define eisacf_slot cf_loc[0]
105 #define EISA_UNKNOWN_SLOT -1 /* wildcarded 'slot' */
106
107 #endif /* _DEV_EISA_EISAVAR_H_ */