#include #include #define LAPIC_REG_EOI 0xB0 namespace arch::acpi { local_apic::local_apic(uint32_t *base) : base_(base) { } uint32_t local_apic::read(uint32_t reg) { return *(volatile uint32_t *)((char *)base_ + reg); } void local_apic::write(uint32_t reg, uint32_t val) { *(volatile uint32_t *)((char *)base_ + reg) = val; } void local_apic::ack() { *(volatile uint32_t *)((char *)base_ + LAPIC_REG_EOI) = 0; } }