blob: 7bbcdb0a475aee1277c904bb8ee6030385602c94 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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);
|