blob: c883fcbe93b67ef68bfc18a6e48d4ec53c37cdd0 [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001/* 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__
26struct irqaction;
27struct pt_regs;
28extern void migrate_irqs(void);
29
30extern void asm_do_IRQ(unsigned int, struct pt_regs *);
31void handle_IRQ(unsigned int, struct pt_regs *);
32void init_IRQ(void);
33
34#ifdef CONFIG_SMP
35extern void arch_trigger_cpumask_backtrace(const cpumask_t *mask,
36 bool exclude_self);
37#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
38#endif
39
40static inline int nr_legacy_irqs(void)
41{
42 return NR_IRQS_LEGACY;
43}
44
45#endif
46
47#endif
48