aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/include
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-04-06 17:24:36 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-04-06 18:07:17 +0200
commitf456f1674d48932846eb7b5ec1df630ad67e7e3d (patch)
tree1722176d1aa98d0942fb10cfade035c658bf4d14 /arch/x86_64/include
parentc18feddd51d1a1398d1245229c5f889dd40554b3 (diff)
downloadteachos-f456f1674d48932846eb7b5ec1df630ad67e7e3d.tar.xz
teachos-f456f1674d48932846eb7b5ec1df630ad67e7e3d.zip
kernel/acpi: discover local interrupt controllers
Diffstat (limited to 'arch/x86_64/include')
-rw-r--r--arch/x86_64/include/arch/devices/local_apic.hpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/arch/x86_64/include/arch/devices/local_apic.hpp b/arch/x86_64/include/arch/devices/local_apic.hpp
new file mode 100644
index 0000000..71e9758
--- /dev/null
+++ b/arch/x86_64/include/arch/devices/local_apic.hpp
@@ -0,0 +1,26 @@
+#ifndef TEACHOS_ARCH_X86_64_DEVICES_LOCAL_APIC_HPP
+#define TEACHOS_ARCH_X86_64_DEVICES_LOCAL_APIC_HPP
+
+#include "kapi/devices/device.hpp"
+#include "kapi/memory.hpp"
+
+#include <cstddef>
+#include <cstdint>
+
+namespace arch::devices
+{
+
+ struct local_apic : kapi::devices::device
+ {
+ local_apic(std::size_t major, std::size_t minor, std::uint64_t hardware_id, kapi::memory::physical_address base);
+
+ auto init() -> bool override;
+
+ private:
+ std::uint64_t m_hardware_id{};
+ kapi::memory::physical_address m_base{};
+ };
+
+} // namespace arch::devices
+
+#endif \ No newline at end of file