#include #include #include #include #include #include namespace kapi::devices { namespace { auto static constinit cpu_bus = kstd::shared_ptr{}; } auto init_platform_drivers() -> void { arch::drivers::init_legacy_drivers(); } auto init_platform_devices() -> void { arch::devices::init_acpi_devices(); arch::devices::init_legacy_devices(); } auto get_cpu_bus() -> kstd::shared_ptr { if (!cpu_bus) { system::panic("[x86_64:DEV] The CPU topology has not yet been initialized!"); } return cpu_bus; } auto discover_cpu_topology() -> void { if (cpu_bus) { system::panic("[x86_64:DEV] The CPU topology has already been initialized!"); } kapi::devices::get_root_bus()->add_child(cpu_bus); cpu_bus = kstd::make_shared(); cpu_bus->facet()->enumerate(*cpu_bus); } } // namespace kapi::devices