9#ifndef MAXOS_HARDWARECOMMUNICATION_ACPI_H
10#define MAXOS_HARDWARECOMMUNICATION_ACPI_H
14#include <system/multiboot.h>
20namespace MaxOS::hardwarecommunication {
101 bool m_using_new_acpi =
false;
110 static bool validate(
const char* descriptor,
size_t length);
112 void map_tables(uint8_t size_of_table);
115 uint64_t get_rsdt_pointer(
size_t index);
117 bool valid_checksum();
struct PACKED MaxOS::hardwarecommunication::ACPISDTHeader acpi_sdt_header_t
Alias for ACPISDTHeader struct.
struct PACKED MaxOS::hardwarecommunication::RSDPDescriptor2 rsdp_descriptor2_t
Alias for RSDPDescriptor2 struct.
struct PACKED MaxOS::hardwarecommunication::RSDPDescriptor rsdp_descriptor_t
Alias for RSDPDescriptor struct.
Handles ACPI table parsing and retrieval.
acpi_sdt_header_t * find(const char *signature)
Finds a table with the given signature.
Parses and provides access to Multiboot 2 information.
Defines classes for memory input and output operations of various bit widths (8, 16,...
Defines a MemoryManager class for handling memory allocation and deallocation.
Defines a PhysicalMemoryManager class for managing physical memory allocation and deallocation of pag...
void virtual_address_t
A type representing a virtual address (used for readability)
Defines a String class for dynamically sized strings with various operations.
Root System Description Pointer (RSDP) structure for ACPI 2 and above.
uint64_t xsdt_address
The physical address of the XSDT.
uint8_t extended_checksum
This byte added to all bytes in the table must equal zero for the table to be valid (including the ve...
uint32_t length
The total length of the RSDP structure (including the version 1 part)
RSDPDescriptor version_1_info
The ACPI 1 RSDP structure (see rsdp_descriptor_t)
Root System Description Pointer (RSDP) structure for ACPI 1.
uint8_t checksum
This byte added to all bytes in the table must equal zero for the table to be valid.
uint32_t rsdt_address
The physical address of the RSDT (.
uint8_t revision
The version of the ACPI specification that is supported (higher means more features and is backwards ...
Root System Description Table (RSDT) structure for ACPI 1. Contains the header and an array of pointe...
ACPISDTHeader header
The common header for all ACPI SDTs (see acpi_sdt_header_t)
uint32_t pointers[]
An array of physical addresses pointing to other ACPI SDTs.
Extended System Description Table (XSDT) structure for ACPI 2 and above. Contains the header and an a...
uint64_t pointers[]
An array of physical addresses pointing to other ACPI SDTs.
ACPISDTHeader header
The common header for all ACPI SDTs (see acpi_sdt_header_t)