12 return read32(ioapic_base + 0x10);
38 count = (reg >> 16) & 0xff;
57 count = (reg >> 16) & 0xff;
59 count = mre_count - 1;
80 for (i = first; i <= last; i++)
101 high = bsp_lapicid << (56 - 32);
127 for (i = 0; i < 3; i++)
155 "IOAPIC: Enabling interrupts on APIC serial bus\n");
static void write32(void *addr, uint32_t val)
static uint32_t read32(const void *addr)
u8 get_ioapic_id(void *ioapic_base)
static void route_i8259_irq0(void *ioapic_base)
u32 io_apic_read(void *ioapic_base, u32 reg)
unsigned int ioapic_get_max_vectors(void *ioapic_base)
void io_apic_write(void *ioapic_base, u32 reg, u32 value)
void ioapic_set_boot_config(void *ioapic_base, bool irq_on_fsb)
void setup_ioapic(void *ioapic_base, u8 ioapic_id)
u8 get_ioapic_version(void *ioapic_base)
void ioapic_lock_max_vectors(void *ioapic_base)
void ioapic_set_max_vectors(void *ioapic_base, int mre_count)
static void write_vector(void *ioapic_base, u8 vector, u32 high, u32 low)
static void clear_vectors(void *ioapic_base, u8 first, u8 last)
void set_ioapic_id(void *ioapic_base, u8 ioapic_id)
#define printk(level,...)
static __always_inline unsigned int lapicid(void)
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
#define BIOS_SPEW
BIOS_SPEW - Excessively verbose output.
#define BIOS_WARNING
BIOS_WARNING - Bad configuration.