STRUCT X86_INIT_IRQS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct x86_init_irqs(9) β€” Kernel API Manual ✨

okay so bestie, gather round, because this is the little struct that decides how your interrupts get set up on x86, and it lives in the kernel API manual (struct x86_init_irqs(9)). it's giving "tiny struct, enormous responsibility" energy πŸ’…


🌸 NAME 🌸

struct x86_init_irqs β€” platform specific interrupt setup

like, literally the hook table for platform-specific interrupt init. no cap.


πŸŽ€ SYNOPSIS πŸŽ€

struct x86_init_irqs {
    void (*pre_vector_init)(void);
    void (*intr_init)(void);
    void (*intr_mode_select)(void);
    void (*intr_mode_init)(void);
    struct irq_domain *(*create_pci_msi_domain)(void);
 };

five function pointers, all vibes, zero chill πŸ”₯


πŸ‘‘ Members πŸ‘‘

each one is a function pointer that the platform fills in, and here's exactly what each one is for:

  • pre_vector_init β€” init code to run before interrupt vectors are set up. like the getting-ready portion of the morning routine ✨
  • intr_init β€” interrupt init code. the main character of the group chat 🫢
  • intr_mode_select β€” interrupt delivery mode selection. choosing which mode we're in, obviously πŸ’…
  • intr_mode_init β€” interrupt delivery mode setup. actually setting up the mode we picked. follow-through is key πŸŽ€
  • create_pci_msi_domain β€” Create the PCI/MSI interrupt domain. returns a struct irq_domain *, so yeah it's building an actual domain 🌈

πŸ¦‹ SEE ALSO πŸ¦‹

so there's a whole family of these structs and they all hang out together, plus the actual file they live in:

  • Kernel file ./arch/x86/include/asm/x86_init.h struct
  • x86_init_mpparse(9)
  • struct x86_init_resources(9)
  • struct x86_init_oem(9)
  • struct x86_init_paging(9)
  • struct x86_init_timers(9)
  • struct x86_init_iommu(9)
  • struct x86_init_pci(9)
  • struct x86_hyper_init(9)
  • struct x86_init_acpi(9)
  • struct x86_guest(9)
  • struct x86_init_ops(9)
  • struct x86_cpuinit_ops(9)
  • struct x86_legacy_devices(9)
  • enum x86_legacy_i8042_state(9)
  • struct x86_legacy_features(9)
  • struct x86_hyper_runtime(9)
  • struct x86_platform_ops(9)

go read all of them bestie, it's a whole saga πŸ’€ (affectionate)


ngl this page is short, but every field here matters β€” interrupt setup is not the place to vibe and hope for the best 😭

okay that's the whole page!! sign-off time: this one comes from <pink>./arch/x86/include/asm</pink> and it's dated <purple>October 2026</purple> β€” it's giving future icon, periodt β­πŸ’–πŸ§š

πŸ“¦ where this page comes from