1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 18:58:12 +00:00

ACPI: Adopt the changes in the definitions file

Also, the functions for StaticParsing namespace were added.
Therefore, some early access functionality is being used also
in ACPI::StaticParser class.
This commit is contained in:
Liav A 2020-02-28 22:24:10 +02:00 committed by Andreas Kling
parent bf55d83c1f
commit b9c65ea746
6 changed files with 453 additions and 510 deletions

View file

@ -30,42 +30,40 @@
#include <AK/OwnPtr.h>
namespace Kernel {
namespace ACPI {
class ACPIStaticParser : ACPIParser {
public:
static void initialize(PhysicalAddress rsdp);
static void initialize_without_rsdp();
static bool is_initialized();
class StaticParser : Parser {
public:
static void initialize(PhysicalAddress rsdp);
static void initialize_without_rsdp();
static bool is_initialized();
virtual PhysicalAddress find_table(const char* sig) override;
virtual void do_acpi_reboot() override;
virtual void do_acpi_shutdown() override;
virtual bool is_operable() override { return m_operable; }
virtual PhysicalAddress find_table(const char* sig) override;
virtual void do_acpi_reboot() override;
virtual void do_acpi_shutdown() override;
virtual bool is_operable() override { return m_operable; }
protected:
ACPIStaticParser();
explicit ACPIStaticParser(PhysicalAddress);
protected:
StaticParser();
explicit StaticParser(PhysicalAddress);
private:
void locate_static_data();
void locate_all_aml_tables();
void locate_main_system_description_table();
void initialize_main_system_description_table();
size_t get_table_size(PhysicalAddress);
u8 get_table_revision(PhysicalAddress);
void init_fadt();
PhysicalAddress search_rsdp_in_ebda(u16 ebda_segment);
PhysicalAddress search_rsdp_in_bios_area();
PhysicalAddress search_rsdp();
private:
void locate_static_data();
void locate_main_system_description_table();
void initialize_main_system_description_table();
size_t get_table_size(PhysicalAddress);
u8 get_table_revision(PhysicalAddress);
void init_fadt();
void init_facs();
PhysicalAddress m_rsdp;
PhysicalAddress m_main_system_description_table;
PhysicalAddress m_rsdp;
PhysicalAddress m_main_system_description_table;
OwnPtr<ACPI::MainSystemDescriptionTable> m_main_sdt;
OwnPtr<ACPI::FixedACPIData> m_fadt;
Vector<ACPI_RAW::SDTHeader*> m_aml_tables_ptrs;
bool m_xsdt_supported;
};
Vector<PhysicalAddress> m_sdt_pointers;
PhysicalAddress m_fadt;
PhysicalAddress m_facs;
bool m_xsdt_supported;
};
}
}