diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2021-04-25 12:41:24 +0200 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2021-04-25 12:41:24 +0200 |
| commit | 7db6db5ae64e7ab2626bbd898c63f58e053dc1a6 (patch) | |
| tree | aac3b4b8755acbea397709a00611642c2534f053 /src/drivers/acpi.hpp | |
| parent | 657372f1be95393b76a54f258ba3f937b4073abe (diff) | |
Debug multiboot, enable apic and ACPI table parsing
Diffstat (limited to 'src/drivers/acpi.hpp')
| -rw-r--r-- | src/drivers/acpi.hpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/drivers/acpi.hpp b/src/drivers/acpi.hpp new file mode 100644 index 0000000..7bbcdb0 --- /dev/null +++ b/src/drivers/acpi.hpp @@ -0,0 +1,43 @@ +#pragma once + +#include "include/boucane.hpp" + +#define ACPI_RSDP_SIGNATURE 0x2052545020445352 +#define ACPI_RSDT_SIGNATURE 0x54445352 +#define ACPI_MADT_SIGNATURE 0x43495041 + +typedef struct RSDP { + u64 signature; + u8 checksum; + u64 oemid:48; + u8 revision; + u32 rsdt_addr; + u32 length; +} __attribute__((packed)) RSDP; + +typedef struct ACPI_TABLE_HEADER { + u32 signature; + u32 length; + u8 revision; + u8 checksum; + u64 oemid:48; + u64 oem_table_id; + u32 oem_revision; + u32 creator_id; + u32 creator_revision; +} __attribute__((packed)) ACPI_TABLE_HEADER; + +typedef struct RSDT { + ACPI_TABLE_HEADER header; + u32 first_entry_addr_ptr; +} __attribute__((packed)) RSDT; + +typedef struct INT_CTRL_HEADER { + u8 type; + u8 length; +} __attribute__((packed)) INT_CTRL_HEADER; + + +char acpi_load_madt(void* rsdp_p); +char acpi_checksum(void* p, char size); + |
