diff --git a/repos/ports/src/virtualbox/devices.cc b/repos/ports/src/virtualbox/devices.cc index 6c81db1bfb..5c3158c057 100644 --- a/repos/ports/src/virtualbox/devices.cc +++ b/repos/ports/src/virtualbox/devices.cc @@ -76,7 +76,8 @@ extern "C" int VBoxDevicesRegister(PPDMDEVREGCB pCallbacks, uint32_t u32Version) * - 'pciSetIrqInternal()' in DevPCI.cpp * - '_PIC' and '_PRT' ACPI methods in vbox.dsl */ -bool force_ioapic() + +static bool read_force_ioapic_from_config() { try { Genode::Attached_rom_dataspace config("config"); @@ -85,3 +86,10 @@ bool force_ioapic() return false; } } + +bool force_ioapic() +{ + /* read only once from config ROM */ + static bool force = read_force_ioapic_from_config(); + return force; +}