| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef __ASM_ARM_IRQ_H |
| #define __ASM_ARM_IRQ_H |
| |
| #define NR_IRQS_LEGACY 16 |
| |
| #ifndef CONFIG_SPARSE_IRQ |
| #include <mach/irqs.h> |
| #else |
| #define NR_IRQS NR_IRQS_LEGACY |
| #endif |
| |
| #ifndef irq_canonicalize |
| #define irq_canonicalize(i) (i) |
| #endif |
| |
| /* |
| * Use this value to indicate lack of interrupt |
| * capability |
| */ |
| #ifndef NO_IRQ |
| #define NO_IRQ ((unsigned int)(-1)) |
| #endif |
| |
| #ifndef __ASSEMBLY__ |
| struct irqaction; |
| struct pt_regs; |
| |
| extern void asm_do_IRQ(unsigned int, struct pt_regs *); |
| void handle_IRQ(unsigned int, struct pt_regs *); |
| void init_IRQ(void); |
| |
| #ifdef CONFIG_MULTI_IRQ_HANDLER |
| extern void (*handle_arch_irq)(struct pt_regs *); |
| extern void set_handle_irq(void (*handle_irq)(struct pt_regs *)); |
| #endif |
| |
| #ifdef CONFIG_SMP |
| extern void arch_trigger_cpumask_backtrace(const cpumask_t *mask, |
| bool exclude_self); |
| #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace |
| #endif |
| |
| static inline int nr_legacy_irqs(void) |
| { |
| return NR_IRQS_LEGACY; |
| } |
| |
| #endif |
| |
| #endif |
| |