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 platform_info ROM provided by core */
try { try {
Genode::Attached_rom_dataspace info(_env, "platform_info"); Attached_rom_dataspace(_env, "platform_info")
Genode::Xml_node xml(info.local_addr<char>(), info.size()); .xml().with_optional_sub_node("acpi",
Xml_node acpi_node = xml.sub_node("acpi"); [&] (Xml_node const &acpi_node) {
acpi_revision = acpi_node.attribute_value("revision", 0U); acpi_revision = acpi_node.attribute_value("revision", 0U);
rsdt = acpi_node.attribute_value("rsdt", 0UL); rsdt = acpi_node.attribute_value("rsdt", 0UL);
xsdt = acpi_node.attribute_value("xsdt", 0UL); xsdt = acpi_node.attribute_value("xsdt", 0UL);
});
} catch (...) { } } catch (...) { }
/* try legacy way if not found in platform_info */ /* 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; addr_t efi_sys_tab_phy = 0;
try { Attached_rom_dataspace info(env, "platform_info");
Attached_rom_dataspace info(env, "platform_info"); info.xml().with_optional_sub_node("efi-system-table",
Xml_node xml(info.local_addr<char>(), info.size()); [&] (Xml_node const &acpi_node) {
Xml_node acpi_node = xml.sub_node("efi-system-table"); efi_sys_tab_phy = acpi_node.attribute_value("address", 0UL); });
efi_sys_tab_phy = acpi_node.attribute_value("address", 0UL);
} catch (...) { }
if (!efi_sys_tab_phy) { if (!efi_sys_tab_phy) {
Smbios_table::from_scan(phy_mem, handle_smbios_3, Smbios_table::from_scan(phy_mem, handle_smbios_3,