aboutsummaryrefslogtreecommitdiff
path: root/src/kernel/acpi/acpi.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/acpi/acpi.h')
-rw-r--r--src/kernel/acpi/acpi.h32
1 files changed, 30 insertions, 2 deletions
diff --git a/src/kernel/acpi/acpi.h b/src/kernel/acpi/acpi.h
index c9df040..055af2c 100644
--- a/src/kernel/acpi/acpi.h
+++ b/src/kernel/acpi/acpi.h
@@ -28,6 +28,33 @@ struct address_structure {
uint64_t address;
};
+// p. 138
+struct fadt_flags {
+ uint8_t WBINVD : 1;
+ uint8_t WBINVD_flush : 1;
+ uint8_t C1_support : 1;
+ uint8_t C2_mp_support : 1;
+ uint8_t power_button : 1; // 1 if not present
+ uint8_t sleep_button : 1; // 1 if not present
+ uint8_t rtc_fix_reg : 1;
+ uint8_t rtc_wakes_S4 : 1;
+ uint8_t timer_32 : 1;
+ uint8_t dock_support : 1;
+ uint8_t reset_support : 1;
+ uint8_t sealed_case : 1;
+ uint8_t headless : 1;
+ uint8_t slp_instruction : 1;
+ uint8_t pci_wake_support : 1;
+ uint8_t use_platform_clock : 1;
+ uint8_t rtc_valid_S4 : 1;
+ uint8_t remote_on_support : 1;
+ uint8_t force_apic_cluster : 1;
+ uint8_t force_apic_physical : 1;
+ uint8_t hw_reduced_acpi : 1;
+ uint8_t low_power_S0_support : 1;
+ uint16_t reserved : 10;
+};
+
struct rsdp {
char signature[8];
char checksum;
@@ -50,11 +77,12 @@ struct sdt_header {
struct rsdt {
struct sdt_header header;
+ uint32_t sdt_pointer[];
};
struct xsdt {
struct sdt_header header;
- uint32_t *sdt_pointer;
+ uint32_t sdt_pointer[];
};
struct fadt {
@@ -96,7 +124,7 @@ struct fadt {
uint8_t century;
uint16_t boot_architecture_flags; // Reserved in 1.0
uint8_t reserved2;
- uint32_t flags;
+ struct fadt_flags flags;
struct address_structure reset_reg;
uint8_t reset_value;
uint8_t reserved3[3];