mirror of
https://github.com/justinian/jsix.git
synced 2025-12-10 00:14:32 -08:00
Make APIC addresses uint32_t*
APIC registers need to be read/written 32 bits at a time, so best to keep these as pointers to that size.
This commit is contained in:
@@ -123,10 +123,11 @@ device_manager::load_apic(const acpi_apic *apic)
|
|||||||
{
|
{
|
||||||
console *cons = console::get();
|
console *cons = console::get();
|
||||||
|
|
||||||
m_local_apic = reinterpret_cast<uint8_t *>(apic->local_address);
|
m_local_apic = reinterpret_cast<uint32_t *>(apic->local_address);
|
||||||
cons->puts(" ");
|
cons->puts(" ");
|
||||||
cons->put_hex(apic->local_address);
|
cons->put_hex(apic->local_address);
|
||||||
|
|
||||||
|
|
||||||
uint8_t const *p = apic->controller_data;
|
uint8_t const *p = apic->controller_data;
|
||||||
uint8_t const *end = p + acpi_table_entries(apic, 1);
|
uint8_t const *end = p + acpi_table_entries(apic, 1);
|
||||||
|
|
||||||
@@ -142,7 +143,7 @@ device_manager::load_apic(const acpi_apic *apic)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 1: // I/O APIC
|
case 1: // I/O APIC
|
||||||
m_io_apic = reinterpret_cast<uint8_t *>(read_from<uint32_t>(p+4));
|
m_io_apic = reinterpret_cast<uint32_t *>(read_from<uint32_t>(p+4));
|
||||||
m_global_interrupt_base = read_from<uint32_t>(p+8);
|
m_global_interrupt_base = read_from<uint32_t>(p+8);
|
||||||
cons->puts(" ");
|
cons->puts(" ");
|
||||||
cons->put_hex((uint64_t)m_io_apic);
|
cons->put_hex((uint64_t)m_io_apic);
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ public:
|
|||||||
uint8_t * io_apic() const;
|
uint8_t * io_apic() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint8_t *m_local_apic;
|
uint32_t *m_local_apic;
|
||||||
uint8_t *m_io_apic;
|
uint32_t *m_io_apic;
|
||||||
|
|
||||||
uint32_t m_global_interrupt_base;
|
uint32_t m_global_interrupt_base;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user