import of upstream 2.4.34.4 from kernel.org
[linux-2.4.git] / include / asm-i386 / irq.h
1 #ifndef _ASM_IRQ_H
2 #define _ASM_IRQ_H
3
4 /*
5  *      linux/include/asm/irq.h
6  *
7  *      (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar
8  *
9  *      IRQ/IPI changes taken from work by Thomas Radke
10  *      <tomsoft@informatik.tu-chemnitz.de>
11  */
12
13 #include <linux/config.h>
14
15 #define TIMER_IRQ 0
16
17 /*
18  * 16 8259A IRQ's, 208 potential APIC interrupt sources.
19  * Right now the APIC is mostly only used for SMP.
20  * 256 vectors is an architectural limit. (we can have
21  * more than 256 devices theoretically, but they will
22  * have to use shared interrupts)
23  * Since vectors 0x00-0x1f are used/reserved for the CPU,
24  * the usable vector space is 0x20-0xff (224 vectors)
25  */
26 #ifdef CONFIG_X86_IO_APIC
27 #define NR_IRQS 224
28 #else
29 #define NR_IRQS 16
30 #endif
31
32 static __inline__ int irq_cannonicalize(int irq)
33 {
34         return ((irq == 2) ? 9 : irq);
35 }
36
37 extern void disable_irq(unsigned int);
38 extern void disable_irq_nosync(unsigned int);
39 extern void enable_irq(unsigned int);
40 extern void release_x86_irqs(struct task_struct *);
41
42 #ifdef CONFIG_X86_LOCAL_APIC
43 #define ARCH_HAS_NMI_WATCHDOG           /* See include/linux/nmi.h */
44 #endif
45
46 #endif /* _ASM_IRQ_H */