mirror of
https://github.com/torvalds/linux.git
synced 2024-12-25 12:21:37 +00:00
96f0e00378
As we now have generic infrastructure to support backtracing of other CPUs in the system on lockups, we can start to implement this for ARM. Initially, we add an IPI based implementation, as the GIC code needs modification to support the generation of FIQ IPIs, and not all ARM platforms have the ability to raise a FIQ in the non-secure world. This provides us with a "best efforts" implementation in the absence of FIQs. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
47 lines
902 B
C
47 lines
902 B
C
#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 migrate_irqs(void);
|
|
|
|
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_all_cpu_backtrace(bool);
|
|
#define arch_trigger_all_cpu_backtrace(x) arch_trigger_all_cpu_backtrace(x)
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|