1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 04:38:11 +00:00

Kernel: Unify BIOS and ACPI components in the SysFS firmware directory

Both should reside in the SysFS firmware directory which is normally
located in /sys/firmware.
Also, apply some OOM-safety patterns when creating the BIOS and ACPI
directories.
This commit is contained in:
Liav A 2021-09-11 11:19:33 +03:00 committed by Andreas Kling
parent 9132596b8e
commit 33f033066c
8 changed files with 82 additions and 18 deletions

View file

@ -90,11 +90,11 @@ UNMAP_AFTER_INIT void BIOSSysFSDirectory::set_dmi_32_bit_entry_initialization_va
m_smbios_structure_table_length = smbios_entry.ptr()->legacy_structure.smboios_table_length;
}
UNMAP_AFTER_INIT void BIOSSysFSDirectory::initialize()
UNMAP_AFTER_INIT KResultOr<NonnullRefPtr<BIOSSysFSDirectory>> BIOSSysFSDirectory::try_create(FirmwareSysFSDirectory& firmware_directory)
{
auto bios_directory = adopt_ref(*new (nothrow) BIOSSysFSDirectory());
SysFSComponentRegistry::the().register_new_component(bios_directory);
auto bios_directory = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) BIOSSysFSDirectory(firmware_directory)));
bios_directory->create_components();
return bios_directory;
}
void BIOSSysFSDirectory::create_components()
@ -126,8 +126,8 @@ UNMAP_AFTER_INIT void BIOSSysFSDirectory::initialize_dmi_exposer()
dbgln("BIOSSysFSDirectory: Data table @ {}", m_smbios_structure_table);
}
UNMAP_AFTER_INIT BIOSSysFSDirectory::BIOSSysFSDirectory()
: SysFSDirectory("bios", SysFSComponentRegistry::the().root_directory())
UNMAP_AFTER_INIT BIOSSysFSDirectory::BIOSSysFSDirectory(FirmwareSysFSDirectory& firmware_directory)
: SysFSDirectory("bios", firmware_directory)
{
auto entry_32bit = find_dmi_entry32bit_point();
if (entry_32bit.has_value()) {