| Thomas Gleixner | 22067d4 | 2008-05-02 22:14:44 +0200 | [diff] [blame] | 1 | #ifndef _ASM_IRQ_H | 
|  | 2 | #define _ASM_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 | 
| Thomas Gleixner | 96a388d | 2007-10-11 11:20:03 +0200 | [diff] [blame] | 20 | #endif | 
| Thomas Gleixner | 22067d4 | 2008-05-02 22:14:44 +0200 | [diff] [blame] | 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 | #  define __ARCH_HAS_DO_SOFTIRQ | 
|  | 31 | # endif | 
|  | 32 | #endif | 
|  | 33 |  | 
|  | 34 | #ifdef CONFIG_IRQBALANCE | 
|  | 35 | extern int irqbalance_disable(char *str); | 
|  | 36 | #endif | 
|  | 37 |  | 
|  | 38 | #ifdef CONFIG_HOTPLUG_CPU | 
|  | 39 | #include <linux/cpumask.h> | 
|  | 40 | extern void fixup_irqs(cpumask_t map); | 
|  | 41 | #endif | 
|  | 42 |  | 
|  | 43 | extern unsigned int do_IRQ(struct pt_regs *regs); | 
|  | 44 | extern void init_IRQ(void); | 
|  | 45 | extern void native_init_IRQ(void); | 
|  | 46 |  | 
|  | 47 | /* Interrupt vector management */ | 
|  | 48 | extern DECLARE_BITMAP(used_vectors, NR_VECTORS); | 
|  | 49 |  | 
|  | 50 | #endif /* _ASM_IRQ_H */ |