]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
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 | * <[email protected]> | |
11 | */ | |
12 | ||
13 | #define TIMER_IRQ 0 | |
14 | ||
15 | /* | |
16 | * 16 8259A IRQ's, 208 potential APIC interrupt sources. | |
17 | * Right now the APIC is mostly only used for SMP. | |
18 | * 256 vectors is an architectural limit. (we can have | |
19 | * more than 256 devices theoretically, but they will | |
20 | * have to use shared interrupts) | |
21 | * Since vectors 0x00-0x1f are used/reserved for the CPU, | |
22 | * the usable vector space is 0x20-0xff (224 vectors) | |
23 | */ | |
24 | ||
25 | /* | |
26 | * The maximum number of vectors supported by x86_64 processors | |
27 | * is limited to 256. For processors other than x86_64, NR_VECTORS | |
28 | * should be changed accordingly. | |
29 | */ | |
30 | #define NR_VECTORS 256 | |
31 | ||
32 | #define FIRST_SYSTEM_VECTOR 0xef /* duplicated in hw_irq.h */ | |
33 | ||
550f2299 EB |
34 | #define NR_IRQS (NR_VECTORS + (32 *NR_CPUS)) |
35 | #define NR_IRQ_VECTORS NR_IRQS | |
1da177e4 LT |
36 | |
37 | static __inline__ int irq_canonicalize(int irq) | |
38 | { | |
39 | return ((irq == 2) ? 9 : irq); | |
40 | } | |
41 | ||
1da177e4 | 42 | #define ARCH_HAS_NMI_WATCHDOG /* See include/linux/nmi.h */ |
1da177e4 | 43 | |
76e4f660 AR |
44 | #ifdef CONFIG_HOTPLUG_CPU |
45 | #include <linux/cpumask.h> | |
46 | extern void fixup_irqs(cpumask_t map); | |
47 | #endif | |
48 | ||
ed6b676c AK |
49 | #define __ARCH_HAS_DO_SOFTIRQ 1 |
50 | ||
1da177e4 | 51 | #endif /* _ASM_IRQ_H */ |