/* * Copyright (c) 2022, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include #include #include #include #include namespace Kernel { UNMAP_AFTER_INIT NonnullRefPtr DMIEntryPointExposedBlob::must_create(PhysicalAddress dmi_entry_point, size_t blob_size) { return adopt_ref(*new (nothrow) DMIEntryPointExposedBlob(dmi_entry_point, blob_size)); } UNMAP_AFTER_INIT DMIEntryPointExposedBlob::DMIEntryPointExposedBlob(PhysicalAddress dmi_entry_point, size_t blob_size) : BIOSSysFSComponent() , m_dmi_entry_point(dmi_entry_point) , m_dmi_entry_point_length(blob_size) { } ErrorOr> DMIEntryPointExposedBlob::try_to_generate_buffer() const { auto dmi_blob = TRY(Memory::map_typed((m_dmi_entry_point), m_dmi_entry_point_length)); return KBuffer::try_create_with_bytes(Span { dmi_blob.ptr(), m_dmi_entry_point_length }); } }