1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-24 19:07:35 +00:00

Kernel: Move PC BIOS-related code to the x86_64 architecture directory

All code that is related to PC BIOS should not be in the Kernel/Firmware
directory as this directory is for abstracted and platform-agnostic code
like ACPI (and device tree parsing in the future).

This fixes a problem with the aarch64 architecure, as these machines
don't have any PC-BIOS in them so actually trying to access these memory
locations (EBDA, BIOS ROM) does not make any sense, as they're specific
to x86 machines only.
This commit is contained in:
Liav A 2023-06-09 21:22:30 +03:00 committed by Jelle Raaijmakers
parent 5fd975da8f
commit d550b09871
12 changed files with 49 additions and 44 deletions

View file

@ -1,41 +0,0 @@
/*
* Copyright (c) 2022, Liav A. <liavalb@hotmail.co.il>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/RefPtr.h>
#include <AK/Types.h>
#include <AK/Vector.h>
#include <Kernel/FileSystem/SysFS/Subsystems/Firmware/Directory.h>
#include <Kernel/Library/KBuffer.h>
#include <Kernel/Library/LockRefPtr.h>
#include <Kernel/Memory/PhysicalAddress.h>
namespace Kernel {
class BIOSSysFSComponent final : public SysFSComponent {
public:
enum class Type {
DMIEntryPoint,
SMBIOSTable,
};
public:
static NonnullRefPtr<BIOSSysFSComponent> must_create(Type, PhysicalAddress, size_t blob_size);
virtual StringView name() const override;
virtual ErrorOr<size_t> read_bytes(off_t, size_t, UserOrKernelBuffer&, OpenFileDescription*) const override;
private:
ErrorOr<NonnullOwnPtr<KBuffer>> try_to_generate_buffer() const;
BIOSSysFSComponent(Type, PhysicalAddress, size_t blob_size);
virtual size_t size() const override { return m_blob_length; }
PhysicalAddress const m_blob_paddr;
size_t const m_blob_length { 0 };
Type const m_type { Type::DMIEntryPoint };
};
}