Commit | Line | Data |
---|---|---|
1965aae3 PA |
1 | #ifndef _ASM_X86_IRQ_H |
2 | #define _ASM_X86_IRQ_H | |
22067d45 TG |
3 | /* |
4 | * (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar | |
5 | * | |
6 | * IRQ/IPI changes taken from work by Thomas Radke | |
7 | * <tomsoft@informatik.tu-chemnitz.de> | |
8 | */ | |
9 | ||
10 | #include <asm/apicdef.h> | |
11 | #include <asm/irq_vectors.h> | |
12 | ||
13 | static inline int irq_canonicalize(int irq) | |
14 | { | |
15 | return ((irq == 2) ? 9 : irq); | |
16 | } | |
17 | ||
7974891d CH |
18 | #ifdef CONFIG_X86_32 |
19 | extern void irq_ctx_init(int cpu); | |
96a388de | 20 | #else |
22067d45 | 21 | # define irq_ctx_init(cpu) do { } while (0) |
22067d45 TG |
22 | #endif |
23 | ||
7974891d CH |
24 | #define __ARCH_HAS_DO_SOFTIRQ |
25 | ||
22067d45 TG |
26 | #ifdef CONFIG_HOTPLUG_CPU |
27 | #include <linux/cpumask.h> | |
da6139e4 | 28 | extern int check_irq_vectors_for_cpu_disable(void); |
d7b381bb | 29 | extern void fixup_irqs(void); |
a5e74b84 | 30 | extern void irq_force_complete_move(int); |
96a388de | 31 | #endif |
22067d45 | 32 | |
4a4de9c7 | 33 | extern void (*x86_platform_ipi_callback)(void); |
22067d45 | 34 | extern void native_init_IRQ(void); |
9b2b76a3 | 35 | extern bool handle_irq(unsigned irq, struct pt_regs *regs); |
22067d45 | 36 | |
1d9090e2 | 37 | extern __visible unsigned int do_IRQ(struct pt_regs *regs); |
7c1d7cdc | 38 | |
22067d45 TG |
39 | /* Interrupt vector management */ |
40 | extern DECLARE_BITMAP(used_vectors, NR_VECTORS); | |
b77b881f | 41 | extern int vector_used_by_percpu_irq(unsigned int vector); |
22067d45 | 42 | |
d9112f43 TG |
43 | extern void init_ISA_irqs(void); |
44 | ||
b52e0a7c ML |
45 | #ifdef CONFIG_X86_LOCAL_APIC |
46 | void arch_trigger_all_cpu_backtrace(void); | |
47 | #define arch_trigger_all_cpu_backtrace arch_trigger_all_cpu_backtrace | |
48 | #endif | |
49 | ||
1965aae3 | 50 | #endif /* _ASM_X86_IRQ_H */ |