5 * linux/include/asm/irq.h
7 * (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar
9 * IRQ/IPI changes taken from work by Thomas Radke
10 * <tomsoft@informatik.tu-chemnitz.de>
13 #include <linux/config.h>
14 #include <linux/sched.h>
15 /* include comes from machine specific directory */
16 #include "irq_vectors.h"
17 #include <asm/thread_info.h>
19 static __inline__ int irq_canonicalize(int irq)
21 return ((irq == 2) ? 9 : irq);
24 extern void disable_irq(unsigned int);
25 extern void disable_irq_nosync(unsigned int);
26 extern void enable_irq(unsigned int);
27 extern void release_x86_irqs(struct task_struct *);
28 extern int can_request_irq(unsigned int, unsigned long flags);
30 #ifdef CONFIG_X86_LOCAL_APIC
31 #define ARCH_HAS_NMI_WATCHDOG /* See include/linux/nmi.h */
34 #ifdef CONFIG_4KSTACKS
36 * per-CPU IRQ handling contexts (thread information and stack)
39 struct thread_info tinfo;
40 u32 stack[THREAD_SIZE/sizeof(u32)];
43 extern union irq_ctx *hardirq_ctx[NR_CPUS];
44 extern union irq_ctx *softirq_ctx[NR_CPUS];
46 extern void irq_ctx_init(int cpu);
48 #define __ARCH_HAS_DO_SOFTIRQ
50 #define irq_ctx_init(cpu) do { ; } while (0)
55 asmlinkage int handle_IRQ_event(unsigned int, struct pt_regs *,
58 #endif /* _ASM_IRQ_H */