irq.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. * <[email protected]>
  9. */
  10. #include <asm/apicdef.h>
  11. #include <asm/irq_vectors.h>
  12. /*
  13. * The irq entry code is in the noinstr section and the start/end of
  14. * __irqentry_text is emitted via labels. Make the build fail if
  15. * something moves a C function into the __irq_entry section.
  16. */
  17. #define __irq_entry __invalid_section
  18. static inline int irq_canonicalize(int irq)
  19. {
  20. return ((irq == 2) ? 9 : irq);
  21. }
  22. extern int irq_init_percpu_irqstack(unsigned int cpu);
  23. struct irq_desc;
  24. extern void fixup_irqs(void);
  25. #ifdef CONFIG_HAVE_KVM
  26. extern void kvm_set_posted_intr_wakeup_handler(void (*handler)(void));
  27. #endif
  28. extern void (*x86_platform_ipi_callback)(void);
  29. extern void native_init_IRQ(void);
  30. extern void __handle_irq(struct irq_desc *desc, struct pt_regs *regs);
  31. extern void init_ISA_irqs(void);
  32. extern void __init init_IRQ(void);
  33. #ifdef CONFIG_X86_LOCAL_APIC
  34. void arch_trigger_cpumask_backtrace(const struct cpumask *mask,
  35. bool exclude_self);
  36. #define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
  37. #endif
  38. #endif /* _ASM_X86_IRQ_H */