Loading...
1#ifndef __ASM_ARM_IRQ_H
2#define __ASM_ARM_IRQ_H
3
4#include <mach/irqs.h>
5
6#ifndef irq_canonicalize
7#define irq_canonicalize(i) (i)
8#endif
9
10#define NR_IRQS_LEGACY 16
11
12/*
13 * Use this value to indicate lack of interrupt
14 * capability
15 */
16#ifndef NO_IRQ
17#define NO_IRQ ((unsigned int)(-1))
18#endif
19
20#ifndef __ASSEMBLY__
21struct irqaction;
22struct pt_regs;
23extern void migrate_irqs(void);
24
25extern void asm_do_IRQ(unsigned int, struct pt_regs *);
26void handle_IRQ(unsigned int, struct pt_regs *);
27void init_IRQ(void);
28
29#endif
30
31#endif
32
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