blob: b6f319606e306ad00864e81e3ead98a96cdf76ef [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Linus Torvalds1da177e2005-04-16 15:20:36 -07002#ifndef __ASM_ARM_IRQ_H
3#define __ASM_ARM_IRQ_H
4
Rob Herringa2be01b2012-01-03 15:17:23 -06005#define NR_IRQS_LEGACY 16
6
7#ifndef CONFIG_SPARSE_IRQ
Russell Kinga09e64f2008-08-05 16:14:15 +01008#include <mach/irqs.h>
Rob Herringa2be01b2012-01-03 15:17:23 -06009#else
10#define NR_IRQS NR_IRQS_LEGACY
11#endif
Linus Torvalds1da177e2005-04-16 15:20:36 -070012
13#ifndef irq_canonicalize
14#define irq_canonicalize(i) (i)
15#endif
16
Linus Torvalds1da177e2005-04-16 15:20:36 -070017/*
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
Arnaud Patard431d2cd2006-12-27 22:56:44 +010025#ifndef __ASSEMBLY__
26struct irqaction;
viresh kumaraedceb22010-03-29 05:29:57 +010027struct pt_regs;
Russell Kinga054a812005-11-02 22:24:33 +000028extern void migrate_irqs(void);
Russell King446616d2008-09-06 10:56:27 +010029
30extern void asm_do_IRQ(unsigned int, struct pt_regs *);
Russell King - ARM Linuxa4841e32011-07-11 22:25:43 +010031void handle_IRQ(unsigned int, struct pt_regs *);
Russell King446616d2008-09-06 10:56:27 +010032void init_IRQ(void);
33
Catalin Marinasf36a3bb12013-01-18 15:20:06 +000034#ifdef CONFIG_MULTI_IRQ_HANDLER
35extern void (*handle_arch_irq)(struct pt_regs *);
36extern void set_handle_irq(void (*handle_irq)(struct pt_regs *));
37#endif
38
Russell King96f0e002014-09-03 23:57:13 +010039#ifdef CONFIG_SMP
Chris Metcalf9a01c3e2016-10-07 17:02:45 -070040extern void arch_trigger_cpumask_backtrace(const cpumask_t *mask,
41 bool exclude_self);
42#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
Russell King96f0e002014-09-03 23:57:13 +010043#endif
44
Boris Ostrovskyb4ff8382015-11-20 11:25:04 -050045static inline int nr_legacy_irqs(void)
46{
47 return NR_IRQS_LEGACY;
48}
49
Linus Torvalds1da177e2005-04-16 15:20:36 -070050#endif
51
Arnaud Patard431d2cd2006-12-27 22:56:44 +010052#endif
53