aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/include
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-04-08 17:07:27 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-04-08 17:07:27 +0200
commit1ecc0c223a1bacfa1aee183a3573f57c265318df (patch)
tree5913f2fb456d646733ce9e70338f0b8bf1245512 /arch/x86_64/include
parentf36cbd54bb6319050404165e8a3280ccbda05cf3 (diff)
downloadteachos-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.hpp9
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