This commit represents a major revamping of the clock interrupt and timebase
[dragonfly.git] / sys / bus / isa / i386 / isa_compat.h
1 /*-
2  * Copyright (c) 1998 Doug Rabson
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  *    notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  *    notice, this list of conditions and the following disclaimer in the
12  *    documentation and/or other materials provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24  * SUCH DAMAGE.
25  *
26  * $FreeBSD: src/sys/i386/isa/isa_compat.h,v 1.27.2.11 2002/10/05 18:31:48 scottl Exp $
27  * $DragonFly: src/sys/bus/isa/i386/isa_compat.h,v 1.5 2003/12/07 19:23:35 dillon Exp $
28  */
29
30 #include "use_vt.h"
31 #include "use_cx.h"
32 #include "use_el.h"
33 #include "use_le.h"
34 #include "use_rdp.h"
35 #include "use_wl.h"
36 #include "use_pcm.h"
37 #include "use_pas.h"
38 #include "use_sb.h"
39 #include "use_sbxvi.h"
40 #include "use_sbmidi.h"
41 #include "use_awe.h"
42 #include "use_gus.h"
43 #include "use_mss.h"
44 #include "use_css.h"
45 #include "use_sscape.h"
46 #include "use_trix.h"
47 #include "use_opl.h"
48 #include "use_mpu.h"
49 #include "use_uart.h"
50 #include "use_mcd.h"
51 #include "use_scd.h"
52 #include "use_wt.h"
53 #include "use_ctx.h"
54 #include "use_spigot.h"
55 #include "use_gp.h"
56 #include "use_gsc.h"
57 #include "use_cy.h"
58 #include "use_dgb.h"
59 #include "use_labpc.h"
60 #include "use_rc.h"
61 #include "use_rp.h"
62 #include "use_tw.h"
63 #include "use_asc.h"
64 #include "use_stl.h"
65 #include "use_stli.h"
66 #include "use_fla.h"
67
68 struct old_isa_driver {
69         int                     type;
70         struct isa_driver       *driver;
71 };
72
73 extern struct isa_driver  vtdriver;
74 extern struct isa_driver  cxdriver;
75 extern struct isa_driver  eldriver;
76 extern struct isa_driver  ledriver;
77 extern struct isa_driver rdpdriver;
78 extern struct isa_driver  wldriver;
79 extern struct isa_driver pasdriver;
80 extern struct isa_driver  sbdriver;
81 extern struct isa_driver sbxvidriver;
82 extern struct isa_driver sbmididriver;
83 extern struct isa_driver awedriver;
84 extern struct isa_driver gusdriver;
85 extern struct isa_driver mssdriver;
86 extern struct isa_driver cssdriver;
87 extern struct isa_driver sscapedriver;
88 extern struct isa_driver trixdriver;
89 extern struct isa_driver sscape_mssdriver;
90 extern struct isa_driver opldriver;
91 extern struct isa_driver mpudriver;
92 extern struct isa_driver uartdriver;
93 extern struct isa_driver mcddriver;
94 extern struct isa_driver scddriver;
95 extern struct isa_driver  wtdriver;
96 extern struct isa_driver ctxdriver;
97 extern struct isa_driver spigotdriver;
98 extern struct isa_driver  gpdriver;
99 extern struct isa_driver gscdriver;
100 extern struct isa_driver  cydriver;
101 extern struct isa_driver dgbdriver;
102 extern struct isa_driver labpcdriver;
103 extern struct isa_driver  rcdriver;
104 extern struct isa_driver  rpdriver;
105 extern struct isa_driver  twdriver;
106 extern struct isa_driver ascdriver;
107 extern struct isa_driver stldriver;
108 extern struct isa_driver stlidriver;
109 extern struct isa_driver lorandriver;
110
111
112 static struct old_isa_driver old_drivers[] = {
113
114 /* Sensitive TTY */
115
116 /* Sensitive BIO */
117
118 /* Sensitive NET */
119 #if NRDP > 0
120         { INTR_TYPE_NET, &rdpdriver },
121 #endif
122
123 /* Sensitive CAM */
124
125 /* TTY */
126
127 #if NVT > 0
128         { INTR_TYPE_TTY, &vtdriver },
129 #endif
130 #if NGP > 0
131         { INTR_TYPE_TTY, &gpdriver },
132 #endif
133 #if NGSC > 0
134         { INTR_TYPE_TTY, &gscdriver },
135 #endif
136 #if NCY > 0
137         { INTR_TYPE_TTY | INTR_TYPE_FAST, &cydriver },
138 #endif
139 #if NDGB > 0
140         { INTR_TYPE_TTY, &dgbdriver },
141 #endif
142 #if NLABPC > 0
143         { INTR_TYPE_TTY, &labpcdriver },
144 #endif
145 #if NRC > 0
146         { INTR_TYPE_TTY, &rcdriver },
147 #endif
148 #if NRP > 0
149         { INTR_TYPE_TTY, &rpdriver },
150 #endif
151 #if NTW > 0
152         { INTR_TYPE_TTY, &twdriver },
153 #endif
154 #if NASC > 0
155         { INTR_TYPE_TTY, &ascdriver },
156 #endif
157 #if NSTL > 0
158         { INTR_TYPE_TTY, &stldriver },
159 #endif
160 #if NSTLI > 0
161         { INTR_TYPE_TTY, &stlidriver },
162 #endif
163 #if NLORAN > 0
164         { INTR_TYPE_TTY | INTR_TYPE_FAST, &lorandriver },
165 #endif
166
167 /* BIO */
168
169 #if NMCD > 0
170         { INTR_TYPE_BIO, &mcddriver },
171 #endif
172 #if NSCD > 0
173         { INTR_TYPE_BIO, &scddriver },
174 #endif
175 #if NWT > 0
176         { INTR_TYPE_BIO, &wtdriver },
177 #endif
178
179 /* NET */
180
181 #if NLE > 0
182         { INTR_TYPE_NET, &ledriver },
183 #endif
184 #if NCX > 0
185         { INTR_TYPE_NET, &cxdriver },
186 #endif
187 #if NEL > 0
188         { INTR_TYPE_NET, &eldriver },
189 #endif
190 #if NWL > 0
191         { INTR_TYPE_NET, &wldriver },
192 #endif
193
194 /* MISC */
195
196 #if NPAS > 0
197         { INTR_TYPE_MISC, &pasdriver },
198 #endif
199 #if NSB > 0
200         { INTR_TYPE_MISC, &sbdriver },
201 #endif
202 #if NSBXVI > 0
203         { INTR_TYPE_MISC, &sbxvidriver },
204 #endif
205 #if NSBMIDI > 0
206         { INTR_TYPE_MISC, &sbmididriver },
207 #endif
208 #if NAWE > 0
209         { INTR_TYPE_MISC, &awedriver },
210 #endif
211 #if NGUS > 0
212         { INTR_TYPE_MISC, &gusdriver },
213 #endif
214 #if NMSS > 0
215         { INTR_TYPE_MISC, &mssdriver },
216 #endif
217 #if NCSS > 0
218         { INTR_TYPE_MISC, &cssdriver },
219 #endif
220 #if NSSCAPE > 0
221         { INTR_TYPE_MISC, &sscapedriver },
222 #endif
223 #if NTRIX > 0
224         { INTR_TYPE_MISC, &trixdriver },
225 #endif
226 #if NSSCAPE > 0
227         { INTR_TYPE_MISC, &sscape_mssdriver },
228 #endif
229 #if NOPL > 0
230         { INTR_TYPE_MISC, &opldriver },
231 #endif
232 #if NMPU > 0
233         { INTR_TYPE_MISC, &mpudriver },
234 #endif
235 #if NUART > 0
236         { INTR_TYPE_MISC, &uartdriver },
237 #endif
238 #if NCTX > 0
239         { INTR_TYPE_MISC, &ctxdriver },
240 #endif
241 #if NSPIGOT > 0
242         { INTR_TYPE_MISC, &spigotdriver },
243 #endif
244
245 };
246
247 #define old_drivers_count (sizeof(old_drivers) / sizeof(old_drivers[0]))