IOAPIC: Difference between revisions

Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content deleted Content added
No edit summary
No edit summary
Line 8: Line 8:
=== IOREGSEL and IOWIN ===
=== IOREGSEL and IOWIN ===
The register IOREGSEL is an MMIO register select register that is used to access all the other I/O APIC registers. IOREGSEL only selects the register and does not actually write or read the register. The IOWIN register is the 'data' register. Once the IOREGSEL register has been set, the IOWIN register can be used to write or read the register in the IOREGSEL.
The register IOREGSEL is an MMIO register select register that is used to access all the other I/O APIC registers. IOREGSEL only selects the register and does not actually write or read the register. The IOWIN register is the 'data' register. Once the IOREGSEL register has been set, the IOWIN register can be used to write or read the register in the IOREGSEL.

write_ioapic_register is a basic function that writes a 32-bit value (val) to an 8-bit IOAPIC register offset (offset).
read_ioapic_register is a basic function that reads a 32-bit value from an 8-bit IOAPIC register offset (offset).


void write_ioapic_register(const ptr_t apic_base, const uint8_t offset, const uint32_t val)
void write_ioapic_register(const ptr_t apic_base, const uint8_t offset, const uint32_t val)