27 lines
429 B
C++
27 lines
429 B
C++
#include <arch/acpi/local_apic.hpp>
|
|
#include <socks/vm.h>
|
|
#include <socks/compiler.h>
|
|
|
|
#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 read_once(base_ + (reg >> 2));
|
|
}
|
|
|
|
void local_apic::write(uint32_t reg, uint32_t val)
|
|
{
|
|
write_once(base_ + (reg >> 2), val);
|
|
}
|
|
|
|
void local_apic::ack()
|
|
{
|
|
write(LAPIC_REG_EOI, 0);
|
|
}
|
|
}
|