Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef _ASM_X86_IRQ_H
0003 #define _ASM_X86_IRQ_H
0004 /*
0005  *  (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar
0006  *
0007  *  IRQ/IPI changes taken from work by Thomas Radke
0008  *  <tomsoft@informatik.tu-chemnitz.de>
0009  */
0010 
0011 #include <asm/apicdef.h>
0012 #include <asm/irq_vectors.h>
0013 
0014 /*
0015  * The irq entry code is in the noinstr section and the start/end of
0016  * __irqentry_text is emitted via labels. Make the build fail if
0017  * something moves a C function into the __irq_entry section.
0018  */
0019 #define __irq_entry __invalid_section
0020 
0021 static inline int irq_canonicalize(int irq)
0022 {
0023     return ((irq == 2) ? 9 : irq);
0024 }
0025 
0026 extern int irq_init_percpu_irqstack(unsigned int cpu);
0027 
0028 struct irq_desc;
0029 
0030 extern void fixup_irqs(void);
0031 
0032 #ifdef CONFIG_HAVE_KVM
0033 extern void kvm_set_posted_intr_wakeup_handler(void (*handler)(void));
0034 #endif
0035 
0036 extern void (*x86_platform_ipi_callback)(void);
0037 extern void native_init_IRQ(void);
0038 
0039 extern void __handle_irq(struct irq_desc *desc, struct pt_regs *regs);
0040 
0041 extern void init_ISA_irqs(void);
0042 
0043 extern void __init init_IRQ(void);
0044 
0045 #ifdef CONFIG_X86_LOCAL_APIC
0046 void arch_trigger_cpumask_backtrace(const struct cpumask *mask,
0047                     bool exclude_self);
0048 
0049 #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
0050 #endif
0051 
0052 #endif /* _ASM_X86_IRQ_H */