mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 14:07:45 +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:
parent
5fd975da8f
commit
d550b09871
12 changed files with 49 additions and 44 deletions
42
Kernel/Arch/x86_64/Firmware/PCBIOS/SysFSDirectory.h
Normal file
42
Kernel/Arch/x86_64/Firmware/PCBIOS/SysFSDirectory.h
Normal file
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
* 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/LockRefPtr.h>
|
||||
#include <Kernel/Memory/PhysicalAddress.h>
|
||||
|
||||
namespace Kernel {
|
||||
|
||||
class SysFSBIOSDirectory : public SysFSDirectory {
|
||||
public:
|
||||
virtual StringView name() const override { return "bios"sv; }
|
||||
static NonnullRefPtr<SysFSBIOSDirectory> must_create(SysFSFirmwareDirectory&);
|
||||
|
||||
void create_components();
|
||||
|
||||
private:
|
||||
explicit SysFSBIOSDirectory(SysFSFirmwareDirectory&);
|
||||
|
||||
void set_dmi_64_bit_entry_initialization_values();
|
||||
void set_dmi_32_bit_entry_initialization_values();
|
||||
void initialize_dmi_exposer();
|
||||
|
||||
Optional<PhysicalAddress> find_dmi_entry64bit_point();
|
||||
Optional<PhysicalAddress> find_dmi_entry32bit_point();
|
||||
|
||||
PhysicalAddress m_dmi_entry_point;
|
||||
PhysicalAddress m_smbios_structure_table;
|
||||
bool m_using_64bit_dmi_entry_point { false };
|
||||
size_t m_smbios_structure_table_length { 0 };
|
||||
size_t m_dmi_entry_point_length { 0 };
|
||||
};
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue