This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / include / asm-i386 / irq.h
index 5fb999d..ff3fad6 100644 (file)
@@ -21,21 +21,45 @@ static __inline__ int irq_canonicalize(int irq)
        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 */