LAPIC
static inline uint32_tlapic_reg_to_x2apic_msr(uint32_t reg)static inline voidlapic_write(uint32_t reg,uint32_t val)static inline uint32_tlapic_read(uint32_t reg)voidlapic_init()voidlapic_timer_init(uint64_t core_id)uint64_tlapic_get_id(void)uint32_tcpu_get_this_id(void)voidlapic_timer_disable()boollapic_timer_is_enabled()voidlapic_timer_enable()voidlapic_timer_set_ms(uint32_t ms)voidipi_send(uint32_t apic_id,uint8_t vector)voidpanic_broadcast(uint64_t exclude_core)voidx2apic_init()
Defines
Section titled “Defines”LAPIC_ICR_LOW:0x300LAPIC_ICR_HIGH:0x310LAPIC_DELIVERY_FIXED:(0x0 << 8)LAPIC_DELIVERY_LOWEST:(0x1 << 8)LAPIC_DELIVERY_SMI:(0x2 << 8)LAPIC_DELIVERY_NMI:(0x4 << 8)LAPIC_DELIVERY_INIT:(0x5 << 8)LAPIC_DELIVERY_STARTUP:(0x6 << 8)LAPIC_LEVEL_ASSERT:(1 << 14)LAPIC_TRIGGER_EDGE:(0 << 15)LAPIC_TRIGGER_LEVEL:(1 << 15)LAPIC_DEST_PHYSICAL:(0 << 11)LAPIC_DEST_LOGICAL:(1 << 11)LAPIC_DEST_SHIFT:24LAPIC_REG_ID:0x020LAPIC_REG_EOI:0x0B0LAPIC_REG_SVR:0x0F0LAPIC_REG_LVT_TIMER:0x320LAPIC_REG_TIMER_INIT:0x380LAPIC_REG_TIMER_CUR:0x390LAPIC_REG_TIMER_DIV:0x3E0LAPIC_LVT_MASK:(1 << 16)LAPIC_ENABLE:0x100LAPIC_SPURIOUS_REGISTER:0xF0IA32_X2APIC_BASE:0x800IA32_X2APIC_ID:(IA32_X2APIC_BASE + 0x02)IA32_X2APIC_EOI:(IA32_X2APIC_BASE + 0x0B)IA32_X2APIC_SVR:(IA32_X2APIC_BASE + 0x0F)IA32_X2APIC_LVT_TIMER:(IA32_X2APIC_BASE + 0x32)IA32_X2APIC_TIMER_INIT:(IA32_X2APIC_BASE + 0x38)IA32_X2APIC_TIMER_CUR:(IA32_X2APIC_BASE + 0x39)IA32_X2APIC_TIMER_DIV:(IA32_X2APIC_BASE + 0x3E)TIMER_VECTOR:0x20TIMER_MODE_PERIODIC:(1 << 17)IA32_APIC_BASE:0x1BAPIC_X2APIC_ENABLE:(1 << 10)IA32_X2APIC_ICR:0x830LAPIC_LEVEL_ASSERT:(1 << 14)IA32_APIC_BASE_MSR:0x1BIA32_APIC_BASE_MASK:0xFFFFF000ULIA32_APIC_BASE_ENABLE:(1 << 11)