1 #ifndef __ASM_ARM_IRQ_H 2 #define __ASM_ARM_IRQ_H 3 4 #define NR_IRQS_LEGACY 16 5 6 #ifndef CONFIG_SPARSE_IRQ 7 #include <mach/irqs.h> 8 #else 9 #define NR_IRQS NR_IRQS_LEGACY 10 #endif 11 12 #ifndef irq_canonicalize 13 #define irq_canonicalize(i) (i) 14 #endif 15 16 /* 17 * Use this value to indicate lack of interrupt 18 * capability 19 */ 20 #ifndef NO_IRQ 21 #define NO_IRQ ((unsigned int)(-1)) 22 #endif 23 24 #ifndef __ASSEMBLY__ 25 struct irqaction; 26 struct pt_regs; 27 extern void migrate_irqs(void); 28 29 extern void asm_do_IRQ(unsigned int, struct pt_regs *); 30 void handle_IRQ(unsigned int, struct pt_regs *); 31 void init_IRQ(void); 32 33 #ifdef CONFIG_MULTI_IRQ_HANDLER 34 extern void (*handle_arch_irq)(struct pt_regs *); 35 extern void set_handle_irq(void (*handle_irq)(struct pt_regs *)); 36 #endif 37 38 #ifdef CONFIG_SMP 39 extern void arch_trigger_cpumask_backtrace(const cpumask_t *mask, 40 bool exclude_self); 41 #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace 42 #endif 43 44 static inline int nr_legacy_irqs(void) 45 { 46 return NR_IRQS_LEGACY; 47 } 48 49 #endif 50 51 #endif 52 53