/* * Copyright (c) 2022, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include #include namespace Kernel { class SMBIOSExposedTable final : public BIOSSysFSComponent { public: virtual StringView name() const override { return "DMI"sv; } static NonnullRefPtr must_create(PhysicalAddress, size_t blob_size); private: SMBIOSExposedTable(PhysicalAddress dmi_entry_point, size_t blob_size); virtual ErrorOr> try_to_generate_buffer() const override; virtual size_t size() const override { return m_smbios_structure_table_length; } PhysicalAddress m_smbios_structure_table; size_t const m_smbios_structure_table_length { 0 }; }; }