aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/acpi
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src/acpi')
-rw-r--r--kernel/src/acpi/manager.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/kernel/src/acpi/manager.cpp b/kernel/src/acpi/manager.cpp
index 180d458..300b85e 100644
--- a/kernel/src/acpi/manager.cpp
+++ b/kernel/src/acpi/manager.cpp
@@ -4,10 +4,12 @@
#include "kapi/memory.hpp"
#include "kapi/system.hpp"
+#include <kstd/memory>
#include <kstd/print>
#include <cstddef>
#include <cstdint>
+#include <string_view>
namespace kernel::acpi
{
@@ -80,8 +82,7 @@ namespace kernel::acpi
}
else
{
- kstd::println("[OS:ACPI] Found table: {}@{:#x}/{:#x} OEM: {} Rev: {}", table->signature(), linear_table_address,
- physical_table_address, table->oem_id(), table->creator_revision());
+ kstd::println("[OS:ACPI] Found '{}' ACPI table", table->signature());
m_tables.emplace(table->signature(), table);
}
}
@@ -89,4 +90,14 @@ namespace kernel::acpi
return !m_tables.empty();
}
+ auto manager::get_table(std::string_view signature)
+ -> kstd::observer_ptr<kapi::acpi::system_description_table_header const>
+ {
+ if (m_tables.contains(signature))
+ {
+ return kstd::make_observer(m_tables.at(signature));
+ }
+ return nullptr;
+ }
+
} // namespace kernel::acpi