aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorian <ian>2023-07-17 05:19:14 +0000
committerian <ian>2023-07-17 05:19:14 +0000
commitda1258023dc450fa02001ac8b118c1bb3f0eee6d (patch)
tree8e8c9eda473bc58c2d9cd71c12bc06ca35f51fd5
parentd80d809a0ec66e0b5a82f5e07aec5ef7dfc725df (diff)
kernel/acpi: Add extra ACPI tables
git-svn-id: https://svn.vegaa.systems/svn/vega-Vega/trunk@23 a8a8aea2-181d-ee11-89e8-15fd0e089fc4
-rw-r--r--sys/include/firmware/acpi/tables.h38
1 files changed, 36 insertions, 2 deletions
diff --git a/sys/include/firmware/acpi/tables.h b/sys/include/firmware/acpi/tables.h
index a504bef..91231c0 100644
--- a/sys/include/firmware/acpi/tables.h
+++ b/sys/include/firmware/acpi/tables.h
@@ -38,7 +38,7 @@
#define OEMID_SIZE 6
struct __packed acpi_header {
- uint32_t signature; /* ASCII signature string */
+ char signature[4]; /* ASCII signature string */
uint32_t length; /* Length of table in bytes */
uint8_t revision; /* Revision of the structure */
uint8_t checksum; /* Checksum of the header */
@@ -70,7 +70,41 @@ struct __packed acpi_rsdp {
*/
struct __packed acpi_root_sdt {
struct acpi_header hdr;
- void *entries; /* 8*n */
+ uint32_t tables[];
+};
+
+struct __packed acpi_madt {
+ struct acpi_header hdr;
+ uint32_t lapic_id;
+ uint32_t flags;
+};
+
+struct __packed apic_header {
+ uint8_t type;
+ uint8_t length;
+};
+
+struct __packed local_apic {
+ struct apic_header hdr;
+ uint8_t processor_id;
+ uint8_t apic_id;
+ uint32_t flags;
+};
+
+struct __packed ioapic {
+ struct apic_header hdr;
+ uint8_t ioapic_id;
+ uint8_t reserved;
+ uint32_t ioapic_addr;
+ uint32_t gsi_base;
+};
+
+struct __packed interrupt_override {
+ struct apic_header hdr;
+ uint8_t bus;
+ uint8_t source; /* IRQ */
+ uint32_t interrupt; /* GSI */
+ uint16_t flags;
};
#endif /* !_ACPI_TABLES_H_ */