From b145c1ab640035478cbe1dea21b4b6bf89affee1 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Tue, 1 Apr 2025 22:43:29 +0300 Subject: [PATCH] Kernel: Add easier api for evaluating ACPI nodes --- kernel/include/kernel/ACPI/AML/Namespace.h | 3 ++- kernel/kernel/ACPI/AML/Namespace.cpp | 5 ++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/kernel/include/kernel/ACPI/AML/Namespace.h b/kernel/include/kernel/ACPI/AML/Namespace.h index a696e153..139513c6 100644 --- a/kernel/include/kernel/ACPI/AML/Namespace.h +++ b/kernel/include/kernel/ACPI/AML/Namespace.h @@ -27,7 +27,8 @@ namespace Kernel::ACPI::AML BAN::ErrorOr parse(BAN::ConstByteSpan); - BAN::ErrorOr evaluate(BAN::StringView); + BAN::ErrorOr evaluate(BAN::StringView path) { return evaluate(Scope {}, path); } + BAN::ErrorOr evaluate(const Scope& scope, BAN::StringView); // returns empty scope if object already exited BAN::ErrorOr add_named_object(const Scope& scope, const NameString& name_string, Node&& node); diff --git a/kernel/kernel/ACPI/AML/Namespace.cpp b/kernel/kernel/ACPI/AML/Namespace.cpp index 890df5e9..661f0778 100644 --- a/kernel/kernel/ACPI/AML/Namespace.cpp +++ b/kernel/kernel/ACPI/AML/Namespace.cpp @@ -547,11 +547,10 @@ namespace Kernel::ACPI::AML return result; } - BAN::ErrorOr Namespace::evaluate(BAN::StringView path) + BAN::ErrorOr Namespace::evaluate(const Scope& scope, BAN::StringView path) { - Scope root_scope; auto name_string = TRY(NameString::from_string(path)); - auto [object_path, object] = TRY(find_named_object(root_scope, name_string)); + auto [object_path, object] = TRY(find_named_object(scope, name_string)); if (object == nullptr) return BAN::Error::from_errno(ENOENT); return evaluate_node(object_path, object->node);