Files
serenity/Kernel/Firmware/SMBIOS/SysFSDirectory.h
T
Sönke Holz 99f5ffd2cc Kernel+Ports: Move SMBIOS sysfs paths to /sys/firmware/smbios
Also use more fitting file names for the entry point and structure
table.

Now that we expose SMBIOS data on non-x86, putting this in a "bios"
directory feels wrong.
2026-01-25 20:15:31 -05:00

44 lines
1.2 KiB
C++

/*
* Copyright (c) 2022, Liav A. <[email protected]>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/RefPtr.h>
#include <AK/SetOnce.h>
#include <AK/Types.h>
#include <AK/Vector.h>
#include <Kernel/FileSystem/SysFS/Subsystems/Firmware/Directory.h>
#include <Kernel/Library/LockRefPtr.h>
#include <Kernel/Memory/PhysicalAddress.h>
namespace Kernel {
class SysFSBIOSDirectory : public SysFSDirectory {
public:
virtual StringView name() const override { return "smbios"sv; }
static NonnullRefPtr<SysFSBIOSDirectory> must_create(SysFSFirmwareDirectory&);
void create_components();
private:
explicit SysFSBIOSDirectory(SysFSFirmwareDirectory&);
void set_smbios_64_bit_entry_initialization_values();
void set_smbios_32_bit_entry_initialization_values();
void initialize_smbios_exposer();
Optional<PhysicalAddress> find_smbios_entry64bit_point();
Optional<PhysicalAddress> find_smbios_entry32bit_point();
PhysicalAddress m_smbios_entry_point;
PhysicalAddress m_smbios_structure_table;
SetOnce m_using_64bit_smbios_entry_point;
size_t m_smbios_structure_table_length { 0 };
size_t m_smbios_entry_point_length { 0 };
};
}