summaryrefslogtreecommitdiff
path: root/src/include/acpi.h
diff options
context:
space:
mode:
authorBrett Weiland <brett_weiland@bpcspace.com>2021-03-24 15:42:20 -0500
committerBrett Weiland <brett_weiland@bpcspace.com>2021-03-24 15:42:20 -0500
commitf90c075d5061b3a89316d6bf3d5b190d49049ccd (patch)
tree36265da568b852ca5c0a8b4affe706cda80c4a9d /src/include/acpi.h
parent14b109ea24dc5cb1db948de57a2a44c80ef4622e (diff)
renamed: kernel/include/acpi.h -> include/acpi.h
renamed: kernel/include/libc.h -> include/libc.h renamed: kernel/include/paging.h -> include/paging.h renamed: kernel/include/printf.h -> include/printf.h renamed: kernel/include/serial.h -> include/serial.h renamed: kernel/include/video.h -> include/video.h new file: indigo_os renamed: kernel/libs/acpi.c -> kernel/acpi.c renamed: kernel/libs/drivers/serial.c -> kernel/drivers/serial.c renamed: kernel/libs/drivers/video.c -> kernel/drivers/video.c renamed: kernel/libs/libc.c -> kernel/libc.c renamed: kernel/libs/page.c -> kernel/page.c renamed: kernel/libs/printf.c -> kernel/printf.c renamed: kernel/libs/printf.h -> kernel/printf.h modified: makefile
Diffstat (limited to 'src/include/acpi.h')
-rw-r--r--src/include/acpi.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/include/acpi.h b/src/include/acpi.h
new file mode 100644
index 0000000..c15e044
--- /dev/null
+++ b/src/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();