#include #include #include #include namespace kapi::cpu { auto init() -> void { auto static constinit is_initialized = std::atomic_flag{}; if (is_initialized.test_and_set()) { system::panic("[x86_64] CPU has already been initialized."); } arch::cpu::initialize_descriptors(); arch::cpu::initialize_legacy_interrupts(); } auto halt() -> void { asm volatile("1: hlt\njmp 1b"); __builtin_unreachable(); } auto current_id() -> id { // TODO: implement actual ID reading once APs are being set up. return id{.value = 0}; } } // namespace kapi::cpu