return ((irq == 2) ? 9 : irq);
}
-extern void release_vm86_irqs(struct task_struct *);
+extern void disable_irq(unsigned int);
+extern void disable_irq_nosync(unsigned int);
+extern void enable_irq(unsigned int);
+extern void release_x86_irqs(struct task_struct *);
+extern int can_request_irq(unsigned int, unsigned long flags);
#ifdef CONFIG_X86_LOCAL_APIC
-# define ARCH_HAS_NMI_WATCHDOG /* See include/linux/nmi.h */
+#define ARCH_HAS_NMI_WATCHDOG /* See include/linux/nmi.h */
#endif
+/*
+ * per-CPU IRQ handling contexts (thread information and stack)
+ */
+union irq_ctx {
+ struct thread_info tinfo;
+ u32 stack[THREAD_SIZE/sizeof(u32)];
+};
+
#ifdef CONFIG_IRQSTACKS
- extern void irq_ctx_init(int cpu);
- #define __ARCH_HAS_DO_SOFTIRQ
+extern union irq_ctx *hardirq_ctx[NR_CPUS];
+extern union irq_ctx *softirq_ctx[NR_CPUS];
+
+extern void irq_ctx_init(int cpu);
+
+#define __ARCH_HAS_DO_SOFTIRQ
+
#else
#define irq_ctx_init(cpu) do { ; } while (0)
#endif
+struct irqaction;
+struct pt_regs;
+asmlinkage int handle_IRQ_event(unsigned int, struct pt_regs *,
+ struct irqaction *);
+
#ifdef CONFIG_IRQBALANCE
extern int irqbalance_disable(char *str);
#endif
+extern int no_irq_affinity;
+extern int noirqdebug_setup(char *str);
#endif /* _ASM_IRQ_H */