From c0e8336e981c32a2a8eb75ce35b3f2fad98310c0 Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Tue, 27 Aug 2019 19:19:02 +0200 Subject: [PATCH] acpi_drv: report SMBIOS after ACPI info This order of execution reduces the boot time of Sculpt. --- repos/os/src/drivers/acpi/main.cc | 33 +++++++++++++++++++------------ 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/repos/os/src/drivers/acpi/main.cc b/repos/os/src/drivers/acpi/main.cc index 15e21405b..2daa9d686 100644 --- a/repos/os/src/drivers/acpi/main.cc +++ b/repos/os/src/drivers/acpi/main.cc @@ -30,22 +30,29 @@ namespace Acpi { struct Acpi::Main { - Genode::Env &env; - Genode::Heap heap { env.ram(), env.rm() }; - Smbios_table_reporter smbt_reporter { env, heap }; + Genode::Env &_env; + Genode::Heap _heap { _env.ram(), _env.rm() }; - Main(Env &env) : env(env) + struct Acpi_reporter { - try { - Acpi::generate_report(env, heap); - } catch (Genode::Xml_generator::Buffer_exceeded) { - Genode::error("ACPI report too large - failure"); - throw; - } catch (...) { - Genode::error("Unknown exception occured - failure"); - throw; + Acpi_reporter(Env &env, Heap &heap) + { + try { + Acpi::generate_report(env, heap); + } catch (Genode::Xml_generator::Buffer_exceeded) { + error("ACPI report too large - failure"); + throw; + } catch (...) { + error("Unknown exception occured - failure"); + throw; + } } - } + }; + + Acpi_reporter _acpi_reporter { _env, _heap }; + Smbios_table_reporter _smbt_reporter { _env, _heap }; + + Main(Env &env) : _env(env) { } };