28#define IOAPIC_REG_ID 0x00
29#define IOAPIC_REG_VERSION 0x01
30#define IOAPIC_REG_ARB_ID 0x02
31#define IOAPIC_REG_REDIR_TABLE(n) (0x10 + 2 * (n))
98 pr_info(
"reserving ioapic address");
119 pr_dinfo2(x86_ioapic,
"max IRQs: %d, id: %d, version: %d, arb: %d", version.max_entries + 1, ioapic_id, version.version, arb_id);
121 for (
int i = 0; i < version.max_entries + 1; i++)
127 pr_dinfo2(x86_ioapic,
"enable irq %d, cpu lapic-id: %d, trigger_mode %d, polarity %d", irq, lapic_id, trigger_mode, polarity);
#define MOS_ASSERT_X(cond, msg,...)
pmm_region_t * pmm_find_reserved_region(ptr_t needle)
Find a region in the physical memory manager.
#define pmm_reserve_address(paddr)
void ioapic_enable_with_mode(u32 irq, u32 lapic_id, ioapic_trigger_mode_t trigger_mode, ioapic_polarity_t polarity)
static u32 volatile * ioapic
should_inline void ioapic_write_redirection_entry(u32 irq, ioapic_redirection_entry_t entry)
should_inline u32 ioapic_read(u32 reg)
#define IOAPIC_REG_VERSION
#define IOAPIC_REG_REDIR_TABLE(n)
should_inline ioapic_redirection_entry_t ioapic_read_redirection_entry(u32 irq)
void ioapic_disable(u32 irq)
#define IOAPIC_REG_ARB_ID
should_inline void ioapic_write(u32 reg, u32 value)
u32 x86_ioapic_get_irq_override(u32 irq)
#define MOS_STATIC_ASSERT
#define pr_dinfo2(feat, fmt,...)
struct ioapic_redirection_entry_t::@2 destination
ioapic_trigger_mode_t trigger_mode
ioapic_polarity_t polarity