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