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__ 25struct irqaction; 26struct pt_regs; 27extern void migrate_irqs(void); 28 29extern void asm_do_IRQ(unsigned int, struct pt_regs *); 30void handle_IRQ(unsigned int, struct pt_regs *); 31void init_IRQ(void); 32 33#ifdef CONFIG_MULTI_IRQ_HANDLER 34extern void (*handle_arch_irq)(struct pt_regs *); 35extern void set_handle_irq(void (*handle_irq)(struct pt_regs *)); 36#endif 37 38#ifdef CONFIG_SMP 39extern 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 44static inline int nr_legacy_irqs(void) 45{ 46 return NR_IRQS_LEGACY; 47} 48 49#endif 50 51#endif 52 53