]>
Commit | Line | Data |
---|---|---|
b2441318 | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
1965aae3 PA |
2 | #ifndef _ASM_X86_IRQ_H |
3 | #define _ASM_X86_IRQ_H | |
22067d45 TG |
4 | /* |
5 | * (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar | |
6 | * | |
7 | * IRQ/IPI changes taken from work by Thomas Radke | |
8 | * <tomsoft@informatik.tu-chemnitz.de> | |
9 | */ | |
10 | ||
11 | #include <asm/apicdef.h> | |
12 | #include <asm/irq_vectors.h> | |
13 | ||
14 | static inline int irq_canonicalize(int irq) | |
15 | { | |
16 | return ((irq == 2) ? 9 : irq); | |
17 | } | |
18 | ||
7974891d CH |
19 | #ifdef CONFIG_X86_32 |
20 | extern void irq_ctx_init(int cpu); | |
96a388de | 21 | #else |
22067d45 | 22 | # define irq_ctx_init(cpu) do { } while (0) |
22067d45 TG |
23 | #endif |
24 | ||
7974891d CH |
25 | #define __ARCH_HAS_DO_SOFTIRQ |
26 | ||
90a2282e TG |
27 | struct irq_desc; |
28 | ||
22067d45 TG |
29 | #ifdef CONFIG_HOTPLUG_CPU |
30 | #include <linux/cpumask.h> | |
da6139e4 | 31 | extern int check_irq_vectors_for_cpu_disable(void); |
d7b381bb | 32 | extern void fixup_irqs(void); |
96a388de | 33 | #endif |
22067d45 | 34 | |
f6b3c72c FW |
35 | #ifdef CONFIG_HAVE_KVM |
36 | extern void kvm_set_posted_intr_wakeup_handler(void (*handler)(void)); | |
37 | #endif | |
38 | ||
4a4de9c7 | 39 | extern void (*x86_platform_ipi_callback)(void); |
22067d45 | 40 | extern void native_init_IRQ(void); |
a782a7e4 | 41 | |
a782a7e4 | 42 | extern bool handle_irq(struct irq_desc *desc, struct pt_regs *regs); |
22067d45 | 43 | |
1d9090e2 | 44 | extern __visible unsigned int do_IRQ(struct pt_regs *regs); |
7c1d7cdc | 45 | |
d9112f43 TG |
46 | extern void init_ISA_irqs(void); |
47 | ||
b52e0a7c | 48 | #ifdef CONFIG_X86_LOCAL_APIC |
9a01c3ed CM |
49 | void arch_trigger_cpumask_backtrace(const struct cpumask *mask, |
50 | bool exclude_self); | |
51 | #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace | |
b52e0a7c ML |
52 | #endif |
53 | ||
1965aae3 | 54 | #endif /* _ASM_X86_IRQ_H */ |