|
1 #ifndef _ASM_X86_IRQ_H |
|
2 #define _ASM_X86_IRQ_H |
|
3 /* |
|
4 * (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar |
|
5 * |
|
6 * IRQ/IPI changes taken from work by Thomas Radke |
|
7 * <tomsoft@informatik.tu-chemnitz.de> |
|
8 */ |
|
9 |
|
10 #include <asm/apicdef.h> |
|
11 #include <asm/irq_vectors.h> |
|
12 |
|
13 static inline int irq_canonicalize(int irq) |
|
14 { |
|
15 return ((irq == 2) ? 9 : irq); |
|
16 } |
|
17 |
|
18 #ifdef CONFIG_X86_LOCAL_APIC |
|
19 # define ARCH_HAS_NMI_WATCHDOG |
|
20 #endif |
|
21 |
|
22 #ifdef CONFIG_4KSTACKS |
|
23 extern void irq_ctx_init(int cpu); |
|
24 extern void irq_ctx_exit(int cpu); |
|
25 # define __ARCH_HAS_DO_SOFTIRQ |
|
26 #else |
|
27 # define irq_ctx_init(cpu) do { } while (0) |
|
28 # define irq_ctx_exit(cpu) do { } while (0) |
|
29 # ifdef CONFIG_X86_64 |
|
30 # ifndef CONFIG_NSC |
|
31 # define __ARCH_HAS_DO_SOFTIRQ |
|
32 # endif |
|
33 # endif |
|
34 #endif |
|
35 |
|
36 #ifdef CONFIG_IRQBALANCE |
|
37 extern int irqbalance_disable(char *str); |
|
38 #endif |
|
39 |
|
40 #ifdef CONFIG_HOTPLUG_CPU |
|
41 #include <linux/cpumask.h> |
|
42 extern void fixup_irqs(cpumask_t map); |
|
43 #endif |
|
44 |
|
45 extern unsigned int do_IRQ(struct pt_regs *regs); |
|
46 extern void init_IRQ(void); |
|
47 extern void native_init_IRQ(void); |
|
48 |
|
49 /* Interrupt vector management */ |
|
50 extern DECLARE_BITMAP(used_vectors, NR_VECTORS); |
|
51 |
|
52 #endif /* _ASM_X86_IRQ_H */ |