summaryrefslogtreecommitdiff
path: root/src/kernel/include/acpi.h
diff options
context:
space:
mode:
authorBrett Weiland <brett_weiland@bpcspace.com>2021-03-19 10:54:25 -0500
committerBrett Weiland <brett_weiland@bpcspace.com>2021-03-19 10:54:25 -0500
commit66289aa8ecfa07b20bad424eb9860b196641ef52 (patch)
tree9fb3915b5cb18d9f2c1f4648d3bf3fb56396509f /src/kernel/include/acpi.h
first commit
Diffstat (limited to 'src/kernel/include/acpi.h')
-rw-r--r--src/kernel/include/acpi.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/kernel/include/acpi.h b/src/kernel/include/acpi.h
new file mode 100644
index 0000000..c15e044
--- /dev/null
+++ b/src/kernel/include/acpi.h
@@ -0,0 +1,39 @@
+#include <stdint.h>
+#include <libc.h>
+
+struct rsdp_v1 {
+ char sig[8];
+ uint8_t checksum;
+ char OEMID[6];
+ uint8_t version;
+ uint32_t rsdt_addr;
+
+} __attribute__((packed));
+
+struct rsdp_v2 {
+ struct rsdp_v1 v1;
+ uint32_t len;
+ uint64_t xsdt_addr;
+ uint8_t extended_checksum;
+ uint8_t reserved[3];
+} __attribute__((packed));
+
+
+typedef union rsdp_t {
+ struct rsdp_v1 v1;
+ struct rsdp_v2 v2;
+} rsdp_t;
+
+struct acpi_header {
+ char sig[4];
+ uint32_t length;
+ uint8_t revision;
+ uint8_t checksum;
+ char OEMID[6];
+ char OEMTableID[8];
+ uint32_t OEMRevision;
+ uint32_t creator_id;
+ uint32_t creator_revision;
+} __attribute__((packed));
+
+rsdp_t *find_RSDP();