driver/acpi: avoid using Xml_node::sub_node

Issue #5245
This commit is contained in:
Norman Feske 2025-05-16 17:01:09 +02:00 committed by Christian Helmuth
parent 907ccc719a
commit 329c76a1be
2 changed files with 11 additions and 12 deletions

View File

@ -1578,12 +1578,13 @@ class Acpi_table
/* try platform_info ROM provided by core */
try {
Genode::Attached_rom_dataspace info(_env, "platform_info");
Genode::Xml_node xml(info.local_addr<char>(), info.size());
Xml_node acpi_node = xml.sub_node("acpi");
acpi_revision = acpi_node.attribute_value("revision", 0U);
rsdt = acpi_node.attribute_value("rsdt", 0UL);
xsdt = acpi_node.attribute_value("xsdt", 0UL);
Attached_rom_dataspace(_env, "platform_info")
.xml().with_optional_sub_node("acpi",
[&] (Xml_node const &acpi_node) {
acpi_revision = acpi_node.attribute_value("revision", 0U);
rsdt = acpi_node.attribute_value("rsdt", 0UL);
xsdt = acpi_node.attribute_value("xsdt", 0UL);
});
} catch (...) { }
/* try legacy way if not found in platform_info */

View File

@ -146,12 +146,10 @@ Smbios_table_reporter::Smbios_table_reporter(Env &env,
};
addr_t efi_sys_tab_phy = 0;
try {
Attached_rom_dataspace info(env, "platform_info");
Xml_node xml(info.local_addr<char>(), info.size());
Xml_node acpi_node = xml.sub_node("efi-system-table");
efi_sys_tab_phy = acpi_node.attribute_value("address", 0UL);
} catch (...) { }
Attached_rom_dataspace info(env, "platform_info");
info.xml().with_optional_sub_node("efi-system-table",
[&] (Xml_node const &acpi_node) {
efi_sys_tab_phy = acpi_node.attribute_value("address", 0UL); });
if (!efi_sys_tab_phy) {
Smbios_table::from_scan(phy_mem, handle_smbios_3,