aboutsummaryrefslogtreecommitdiff
path: root/kernel/kapi/platform.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/kapi/platform.cpp')
-rw-r--r--kernel/kapi/platform.cpp15
1 files changed, 5 insertions, 10 deletions
diff --git a/kernel/kapi/platform.cpp b/kernel/kapi/platform.cpp
index deb72de..7638cf9 100644
--- a/kernel/kapi/platform.cpp
+++ b/kernel/kapi/platform.cpp
@@ -6,26 +6,21 @@
#include <kstd/memory>
+#include <cstddef>
#include <cstdint>
#include <utility>
namespace kapi::platform
{
- auto cpu_detected(kapi::devices::bus & bus, std::uint64_t hardware_id, bool is_bsp) -> bool
+ auto cpu_detected(kapi::devices::bus & bus, std::size_t major, std::size_t minor, std::uint64_t hardware_id,
+ bool is_bsp, kstd::unique_ptr<devices::device> core_interrupt_controller) -> bool
{
- auto static const core_major = kapi::devices::allocate_major_number();
- auto static const interrupt_controller_major = kapi::devices::allocate_major_number();
- auto static core_index = 0uz;
+ auto core = kstd::make_unique<kernel::devices::cpu::core>(major, minor, hardware_id, is_bsp);
- auto core = kstd::make_unique<kernel::devices::cpu::core>(core_major, core_index, hardware_id, is_bsp);
- auto lapic = kapi::platform::create_core_interrupt_controller(interrupt_controller_major, core_index, hardware_id);
-
- core->add_child(std::move(lapic));
+ core->add_child(std::move(core_interrupt_controller));
bus.add_child(std::move(core));
- ++core_index;
-
return true;
}