linux/arch/x86/include/asm/irq.h
<<
>>
Prefs
   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
  14static inline int irq_canonicalize(int irq)
  15{
  16        return ((irq == 2) ? 9 : irq);
  17}
  18
  19#ifdef CONFIG_X86_32
  20extern void irq_ctx_init(int cpu);
  21#else
  22# define irq_ctx_init(cpu) do { } while (0)
  23#endif
  24
  25#define __ARCH_HAS_DO_SOFTIRQ
  26
  27struct irq_desc;
  28
  29#ifdef CONFIG_HOTPLUG_CPU
  30#include <linux/cpumask.h>
  31extern int check_irq_vectors_for_cpu_disable(void);
  32extern void fixup_irqs(void);
  33#endif
  34
  35#ifdef CONFIG_HAVE_KVM
  36extern void kvm_set_posted_intr_wakeup_handler(void (*handler)(void));
  37#endif
  38
  39extern void (*x86_platform_ipi_callback)(void);
  40extern void native_init_IRQ(void);
  41
  42extern bool handle_irq(struct irq_desc *desc, struct pt_regs *regs);
  43
  44extern __visible unsigned int do_IRQ(struct pt_regs *regs);
  45
  46extern void init_ISA_irqs(void);
  47
  48#ifdef CONFIG_X86_LOCAL_APIC
  49void arch_trigger_cpumask_backtrace(const struct cpumask *mask,
  50                                    bool exclude_self);
  51#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtrace
  52#endif
  53
  54#endif /* _ASM_X86_IRQ_H */
  55