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/sched.h> 14/* include comes from machine specific directory */ 15#include "irq_vectors.h" 16#include <asm/thread_info.h> 17 18static __inline__ int irq_canonicalize(int irq) 19{ 20 return ((irq == 2) ? 9 : irq); 21} 22 23#ifdef CONFIG_X86_LOCAL_APIC 24# define ARCH_HAS_NMI_WATCHDOG /* See include/linux/nmi.h */ 25#endif 26 27#ifdef CONFIG_4KSTACKS 28 extern void irq_ctx_init(int cpu); 29 extern void irq_ctx_exit(int cpu); 30# define __ARCH_HAS_DO_SOFTIRQ 31#else 32# define irq_ctx_init(cpu) do { } while (0) 33# define irq_ctx_exit(cpu) do { } while (0) 34#endif 35 36#ifdef CONFIG_IRQBALANCE 37extern int irqbalance_disable(char *str); 38#endif 39 40#ifdef CONFIG_HOTPLUG_CPU 41extern void fixup_irqs(cpumask_t map); 42#endif 43 44unsigned int do_IRQ(struct pt_regs *regs); 45void init_IRQ(void); 46void __init native_init_IRQ(void); 47 48/* Interrupt vector management */ 49extern DECLARE_BITMAP(used_vectors, NR_VECTORS); 50 51#endif /* _ASM_IRQ_H */ 52