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