#include "kapi/acpi.hpp" #include "kapi/system.hpp" #include "kernel/acpi/manager.hpp" #include #include #include #include #include namespace kapi::acpi { namespace { auto constinit manager = std::optional{}; } // namespace auto init(::acpi::rsdp const & sdp) -> bool { auto static constinit initialized = std::atomic_flag{}; if (initialized.test_and_set()) { system::panic("[OS:ACPI] The ACPI manager has already been initialized!"); } manager.emplace(sdp); return manager->load_tables(); } auto get_table(std::string_view signature) -> kstd::observer_ptr<::acpi::sdt const> { return manager->get_table(signature); } }; // namespace kapi::acpi