Skip to main content

Module ioapic

Module ioapic 

Source
Expand description

I/O APIC driver

The I/O APIC handles routing of external hardware interrupts to Local APICs. It uses indirect MMIO: write register index to IOREGSEL, then read/write IOWIN.

Constantsยง

IOAPICID ๐Ÿ”’
IOAPICVER ๐Ÿ”’
IOREDTBL_BASE ๐Ÿ”’
IOREGSEL ๐Ÿ”’
IOWIN ๐Ÿ”’
REDIR_ACTIVE_LOW ๐Ÿ”’
REDIR_LEVEL_TRIGGER ๐Ÿ”’
REDIR_MASK ๐Ÿ”’

Staticsยง

IOAPIC_BASE_VIRT ๐Ÿ”’
Virtual base address of the I/O APIC MMIO registers
IOAPIC_GSI_BASE ๐Ÿ”’
GSI base for this I/O APIC
IOAPIC_INITIALIZED ๐Ÿ”’
Whether the I/O APIC has been initialized
MADT_OVERRIDES ๐Ÿ”’
MADT interrupt-source overrides, stored so PCI NIC drivers can route their IRQ correctly after the APIC init phase.

Functionsยง

find_override ๐Ÿ”’
Find the override for a legacy IRQ, returning (gsi, polarity, trigger).
init
Initialize the I/O APIC.
ioapic_read ๐Ÿ”’ โš 
Read an I/O APIC register (indirect access)
ioapic_write ๐Ÿ”’ โš 
Write an I/O APIC register (indirect access)
mask_irq
Mask a GSI (disable the interrupt)
mask_legacy_irq
Mask a legacy IRQ, resolving MADT overrides to the correct GSI.
read_redir ๐Ÿ”’ โš 
Read a 64-bit redirection entry
route_irq
Route a GSI to a specific LAPIC and vector.
route_legacy_irq
Route a legacy ISA IRQ, applying MADT interrupt source overrides.
route_nic_irq
Route a PCI NIC interrupt through the I/O APIC using stored MADT overrides.
store_madt_overrides
Store the MADT interrupt-source overrides for later use by PCI NIC drivers.
unmask_irq
Unmask a GSI (enable the interrupt)
write_redir ๐Ÿ”’ โš 
Write a 64-bit redirection entry