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:
Justin C. Miller
2018-04-17 09:18:09 -07:00
parent 71a6f13fa5
commit 504de44ff3
2 changed files with 5 additions and 4 deletions

View File

@@ -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);

View File

@@ -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;