26 lines
439 B
C++
26 lines
439 B
C++
#pragma once
|
|
|
|
struct acpi_xsdt;
|
|
struct acpi_apic;
|
|
|
|
class device_manager
|
|
{
|
|
public:
|
|
device_manager(const void *root_table);
|
|
|
|
device_manager() = delete;
|
|
device_manager(const device_manager &) = delete;
|
|
|
|
uint8_t * local_apic() const;
|
|
uint8_t * io_apic() const;
|
|
|
|
private:
|
|
uint32_t *m_local_apic;
|
|
uint32_t *m_io_apic;
|
|
|
|
uint32_t m_global_interrupt_base;
|
|
|
|
void load_xsdt(const acpi_xsdt *xsdt);
|
|
void load_apic(const acpi_apic *apic);
|
|
};
|