Branch data Line data Source code
1 : : /* SPDX-License-Identifier: GPL-2.0 */ 2 : : #ifndef _ASM_X86_IRQ_H 3 : : #define _ASM_X86_IRQ_H 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 : 44 : static inline int irq_canonicalize(int irq) 15 : : { 16 [ - + ]: 44 : return ((irq == 2) ? 9 : irq); 17 : : } 18 : : 19 : : extern int irq_init_percpu_irqstack(unsigned int cpu); 20 : : 21 : : #define __ARCH_HAS_DO_SOFTIRQ 22 : : 23 : : struct irq_desc; 24 : : 25 : : extern void fixup_irqs(void); 26 : : 27 : : #ifdef CONFIG_HAVE_KVM 28 : : extern void kvm_set_posted_intr_wakeup_handler(void (*handler)(void)); 29 : : extern __visible void smp_kvm_posted_intr_ipi(struct pt_regs *regs); 30 : : extern __visible void smp_kvm_posted_intr_wakeup_ipi(struct pt_regs *regs); 31 : : extern __visible void smp_kvm_posted_intr_nested_ipi(struct pt_regs *regs); 32 : : #endif 33 : : 34 : : extern void (*x86_platform_ipi_callback)(void); 35 : : extern void native_init_IRQ(void); 36 : : 37 : : extern void handle_irq(struct irq_desc *desc, struct pt_regs *regs); 38 : : 39 : : extern __visible unsigned int do_IRQ(struct pt_regs *regs); 40 : : 41 : : extern void init_ISA_irqs(void); 42 : : 43 : : extern void __init init_IRQ(void); 44 : : 45 : : #ifdef CONFIG_X86_LOCAL_APIC 46 : : void arch_trigger_cpumask_backtrace(const struct cpumask *mask, 47 : : bool exclude_self); 48 : : 49 : : extern __visible void smp_x86_platform_ipi(struct pt_regs *regs); 50 : : #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace 51 : : #endif 52 : : 53 : : #endif /* _ASM_X86_IRQ_H */