4694bbc9276a722e06c7102cbac16630aca4fd6c
[reactos.git] / reactos / ntoskrnl / ke / i386 / irqhand.s
1
2 #include <internal/i386/segment.h>
3
4 .global _irq_handler_0
5 _irq_handler_0:
6 pusha
7 pushl %ds
8 pushl %es
9 pushl %fs
10 movl $0xceafbeef,%eax
11 pushl %eax
12 movw $KERNEL_DS,%ax
13 movw %ax,%ds
14 movw %ax,%es
15 movl $PCR_SELECTOR, %eax
16 movl %eax, %fs
17 pushl %esp
18 pushl $0
19 call _KiInterruptDispatch
20 popl %eax
21 popl %eax
22 popl %eax
23 popl %fs
24 popl %es
25 popl %ds
26 popa
27 iret
28
29 .global _irq_handler_1
30 _irq_handler_1:
31 pusha
32 pushl %ds
33 pushl %es
34 pushl %fs
35 movl $0xceafbeef,%eax
36 pushl %eax
37 movw $KERNEL_DS,%ax
38 movw %ax,%ds
39 movw %ax,%es
40 movl $PCR_SELECTOR, %eax
41 movl %eax, %fs
42 pushl %esp
43 pushl $1
44 call _KiInterruptDispatch
45 popl %eax
46 popl %eax
47 popl %eax
48 popl %fs
49 popl %es
50 popl %ds
51 popa
52 iret
53
54 .global _irq_handler_2
55 _irq_handler_2:
56 pusha
57 pushl %ds
58 pushl %es
59 pushl %fs
60 movl $0xceafbeef,%eax
61 pushl %eax
62 movw $KERNEL_DS,%ax
63 movw %ax,%ds
64 movw %ax,%es
65 movl $PCR_SELECTOR, %eax
66 movl %eax, %fs
67 pushl %esp
68 pushl $2
69 call _KiInterruptDispatch
70 popl %eax
71 popl %eax
72 popl %eax
73 popl %fs
74 popl %es
75 popl %ds
76 popa
77 iret
78
79 .global _irq_handler_3
80 _irq_handler_3:
81 pusha
82 pushl %ds
83 pushl %es
84 pushl %fs
85 movl $0xceafbeef,%eax
86 pushl %eax
87 movw $KERNEL_DS,%ax
88 movw %ax,%ds
89 movw %ax,%es
90 movl $PCR_SELECTOR, %eax
91 movl %eax, %fs
92 pushl %esp
93 pushl $3
94 call _KiInterruptDispatch
95 popl %eax
96 popl %eax
97 popl %eax
98 popl %fs
99 popl %es
100 popl %ds
101 popa
102 iret
103
104 .global _irq_handler_4
105 _irq_handler_4:
106 pusha
107 pushl %ds
108 pushl %es
109 pushl %fs
110 movl $0xceafbeef,%eax
111 pushl %eax
112 movw $KERNEL_DS,%ax
113 movw %ax,%ds
114 movw %ax,%es
115 movl $PCR_SELECTOR, %eax
116 movl %eax, %fs
117 pushl %esp
118 pushl $4
119 call _KiInterruptDispatch
120 popl %eax
121 popl %eax
122 popl %eax
123 popl %fs
124 popl %es
125 popl %ds
126 popa
127 iret
128
129 .global _irq_handler_5
130 _irq_handler_5:
131 pusha
132 pushl %ds
133 pushl %es
134 pushl %fs
135 movl $0xceafbeef,%eax
136 pushl %eax
137 movw $KERNEL_DS,%ax
138 movw %ax,%ds
139 movw %ax,%es
140 movl $PCR_SELECTOR, %eax
141 movl %eax, %fs
142 pushl %esp
143 pushl $5
144 call _KiInterruptDispatch
145 popl %eax
146 popl %eax
147 popl %eax
148 popl %fs
149 popl %es
150 popl %ds
151 popa
152 iret
153
154 .global _irq_handler_6
155 _irq_handler_6:
156 pusha
157 pushl %ds
158 pushl %es
159 pushl %fs
160 movl $0xceafbeef,%eax
161 pushl %eax
162 movw $KERNEL_DS,%ax
163 movw %ax,%ds
164 movw %ax,%es
165 movl $PCR_SELECTOR, %eax
166 movl %eax, %fs
167 pushl %esp
168 pushl $6
169 call _KiInterruptDispatch
170 popl %eax
171 popl %eax
172 popl %eax
173 popl %fs
174 popl %es
175 popl %ds
176 popa
177 iret
178
179 .global _irq_handler_7
180 _irq_handler_7:
181 pusha
182 pushl %ds
183 pushl %es
184 pushl %fs
185 movl $0xceafbeef,%eax
186 pushl %eax
187 movw $KERNEL_DS,%ax
188 movw %ax,%ds
189 movw %ax,%es
190 movl $PCR_SELECTOR, %eax
191 movl %eax, %fs
192 pushl %esp
193 pushl $7
194 call _KiInterruptDispatch
195 popl %eax
196 popl %eax
197 popl %eax
198 popl %fs
199 popl %es
200 popl %ds
201 popa
202 iret
203
204 .global _irq_handler_8
205 _irq_handler_8:
206 pusha
207 pushl %ds
208 pushl %es
209 pushl %fs
210 movl $0xceafbeef,%eax
211 pushl %eax
212 movw $KERNEL_DS,%ax
213 movw %ax,%ds
214 movw %ax,%es
215 movl $PCR_SELECTOR, %eax
216 movl %eax, %fs
217 pushl %esp
218 pushl $8
219 call _KiInterruptDispatch
220 popl %eax
221 popl %eax
222 popl %eax
223 popl %fs
224 popl %es
225 popl %ds
226 popa
227 iret
228
229 .global _irq_handler_9
230 _irq_handler_9:
231 pusha
232 pushl %ds
233 pushl %es
234 pushl %fs
235 movl $0xceafbeef,%eax
236 pushl %eax
237 movw $KERNEL_DS,%ax
238 movw %ax,%ds
239 movw %ax,%es
240 movl $PCR_SELECTOR, %eax
241 movl %eax, %fs
242 pushl %esp
243 pushl $9
244 call _KiInterruptDispatch
245 popl %eax
246 popl %eax
247 popl %eax
248 popl %fs
249 popl %es
250 popl %ds
251 popa
252 iret
253
254 .global _irq_handler_10
255 _irq_handler_10:
256 pusha
257 pushl %ds
258 pushl %es
259 pushl %fs
260 movl $0xceafbeef,%eax
261 pushl %eax
262 movw $KERNEL_DS,%ax
263 movw %ax,%ds
264 movw %ax,%es
265 movl $PCR_SELECTOR, %eax
266 movl %eax, %fs
267 pushl %esp
268 pushl $10
269 call _KiInterruptDispatch
270 popl %eax
271 popl %eax
272 popl %eax
273 popl %fs
274 popl %es
275 popl %ds
276 popa
277 iret
278
279 .global _irq_handler_11
280 _irq_handler_11:
281 pusha
282 pushl %ds
283 pushl %es
284 pushl %fs
285 movl $0xceafbeef,%eax
286 pushl %eax
287 movw $KERNEL_DS,%ax
288 movw %ax,%ds
289 movw %ax,%es
290 movl $PCR_SELECTOR, %eax
291 movl %eax, %fs
292 pushl %esp
293 pushl $11
294 call _KiInterruptDispatch
295 popl %eax
296 popl %eax
297 popl %eax
298 popl %fs
299 popl %es
300 popl %ds
301 popa
302 iret
303
304 .global _irq_handler_12
305 _irq_handler_12:
306 pusha
307 pushl %ds
308 pushl %es
309 pushl %fs
310 movl $0xceafbeef,%eax
311 pushl %eax
312 movw $KERNEL_DS,%ax
313 movw %ax,%ds
314 movw %ax,%es
315 movl $PCR_SELECTOR, %eax
316 movl %eax, %fs
317 pushl %esp
318 pushl $12
319 call _KiInterruptDispatch
320 popl %eax
321 popl %eax
322 popl %eax
323 popl %fs
324 popl %es
325 popl %ds
326 popa
327 iret
328
329 .global _irq_handler_13
330 _irq_handler_13:
331 pusha
332 pushl %ds
333 pushl %es
334 pushl %fs
335 movl $0xceafbeef,%eax
336 pushl %eax
337 movw $KERNEL_DS,%ax
338 movw %ax,%ds
339 movw %ax,%es
340 movl $PCR_SELECTOR, %eax
341 movl %eax, %fs
342 pushl %esp
343 pushl $13
344 call _KiInterruptDispatch
345 popl %eax
346 popl %eax
347 popl %eax
348 popl %fs
349 popl %es
350 popl %ds
351 popa
352 iret
353
354 .global _irq_handler_14
355 _irq_handler_14:
356 pusha
357 pushl %ds
358 pushl %es
359 pushl %fs
360 movl $0xceafbeef,%eax
361 pushl %eax
362 movw $KERNEL_DS,%ax
363 movw %ax,%ds
364 movw %ax,%es
365 movl $PCR_SELECTOR, %eax
366 movl %eax, %fs
367 pushl %esp
368 pushl $14
369 call _KiInterruptDispatch
370 popl %eax
371 popl %eax
372 popl %eax
373 popl %fs
374 popl %es
375 popl %ds
376 popa
377 iret
378
379 .global _irq_handler_15
380 _irq_handler_15:
381 pusha
382 pushl %ds
383 pushl %es
384 pushl %fs
385 movl $0xceafbeef,%eax
386 pushl %eax
387 movw $KERNEL_DS,%ax
388 movw %ax,%ds
389 movw %ax,%es
390 movl $PCR_SELECTOR, %eax
391 movl %eax, %fs
392 pushl %esp
393 pushl $15
394 call _KiInterruptDispatch
395 popl %eax
396 popl %eax
397 popl %eax
398 popl %fs
399 popl %es
400 popl %ds
401 popa
402 iret
403
404