diff options
Diffstat (limited to 'kernel/src/devices/cpu.cpp')
| -rw-r--r-- | kernel/src/devices/cpu.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/kernel/src/devices/cpu.cpp b/kernel/src/devices/cpu.cpp new file mode 100644 index 0000000..eb10d74 --- /dev/null +++ b/kernel/src/devices/cpu.cpp @@ -0,0 +1,45 @@ +#include "kernel/devices/cpu.hpp" + +#include "kapi/devices.hpp" +#include "kapi/platform.hpp" + +#include <kstd/print> + +#include <cstddef> +#include <cstdint> + +namespace kernel::devices +{ + + cpu::core::core(std::size_t major_number, std::size_t minor_number, std::uint64_t hardware_id, bool is_bsp) + : kapi::devices::bus{major_number, minor_number, "cpu_core"} + , m_hardware_id{hardware_id} + , m_is_bsp{is_bsp} + {} + + auto cpu::core::hardware_id() const -> std::uint64_t + { + return m_hardware_id; + } + + auto cpu::core::is_bsp() const -> bool + { + return m_is_bsp; + } + + cpu::cpu(std::size_t major_number) + : kapi::devices::bus{major_number, 0, "cpu"} + {} + + auto cpu::probe() -> bool + { + if (!kapi::platform::discover_cpu_topology(*this)) + { + kstd::println("[OS:DEV] Failed to discover CPU topology"); + return false; + } + + return true; + } + +} // namespace kernel::devices
\ No newline at end of file |
