diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-04-08 17:07:27 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-04-08 17:07:27 +0200 |
| commit | 1ecc0c223a1bacfa1aee183a3573f57c265318df (patch) | |
| tree | 5913f2fb456d646733ce9e70338f0b8bf1245512 /arch/x86_64/include | |
| parent | f36cbd54bb6319050404165e8a3280ccbda05cf3 (diff) | |
| download | teachos-1ecc0c223a1bacfa1aee183a3573f57c265318df.tar.xz teachos-1ecc0c223a1bacfa1aee183a3573f57c265318df.zip | |
x86_64: extend LAPIC initialization
Diffstat (limited to 'arch/x86_64/include')
| -rw-r--r-- | arch/x86_64/include/arch/devices/local_apic.hpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/x86_64/include/arch/devices/local_apic.hpp b/arch/x86_64/include/arch/devices/local_apic.hpp index 7ae0a02..946e4af 100644 --- a/arch/x86_64/include/arch/devices/local_apic.hpp +++ b/arch/x86_64/include/arch/devices/local_apic.hpp @@ -18,13 +18,18 @@ namespace arch::devices auto init() -> bool override; private: - [[nodiscard]] auto read_register(std::size_t offset) const -> std::uint32_t; - auto write_register(std::size_t offset, std::uint32_t value) -> void; + enum struct registers : std::ptrdiff_t; + + [[nodiscard]] auto read_register(registers id) const -> std::uint32_t; + auto write_register(registers id, std::uint32_t value) -> void; std::uint64_t m_hardware_id{}; kapi::memory::physical_address m_base{}; kapi::memory::linear_address m_virtual_base{}; bool m_is_bsp{}; + std::uint8_t m_version{}; + std::uint8_t m_highest_lvt_entry_index{}; + bool m_supports_eoi_broadcast_suppression{}; }; } // namespace arch::devices |
