aboutsummaryrefslogtreecommitdiff
path: root/i386/i386at/acpi_parse_apic.h
diff options
context:
space:
mode:
Diffstat (limited to 'i386/i386at/acpi_parse_apic.h')
-rw-r--r--i386/i386at/acpi_parse_apic.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/i386/i386at/acpi_parse_apic.h b/i386/i386at/acpi_parse_apic.h
index bad10054..df36bb31 100644
--- a/i386/i386at/acpi_parse_apic.h
+++ b/i386/i386at/acpi_parse_apic.h
@@ -44,10 +44,17 @@ struct acpi_rsdp {
uint8_t signature[8];
uint8_t checksum;
uint8_t oem_id[6];
- uint8_t revision[1];
+ uint8_t revision;
uint32_t rsdt_addr;
} __attribute__((__packed__));
+struct acpi_rsdp2 {
+ struct acpi_rsdp v1;
+ uint32_t length;
+ uint64_t xsdt_addr;
+ uint8_t checksum;
+ uint8_t reserved[3];
+} __attribute__((__packed__));
/*
* RSDT Entry Header
@@ -77,6 +84,13 @@ struct acpi_rsdt {
uint32_t entry[0];
} __attribute__((__packed__));
+#define ACPI_XSDT_SIG "XSDT"
+
+struct acpi_xsdt {
+ struct acpi_dhdr header;
+ uint64_t entry[0];
+} __attribute__((__packed__));
+
/* APIC table signature. */
#define ACPI_APIC_SIG "APIC"
@@ -157,7 +171,7 @@ struct acpi_apic_irq_override {
} __attribute__((__packed__));
int acpi_apic_init(void);
-void acpi_print_info(struct acpi_rsdp *rsdp, struct acpi_rsdt *rsdt, int acpi_rsdt_n);
+void acpi_print_info(phys_addr_t rsdp, void *rsdt, int acpi_rsdt_n);
extern unsigned lapic_addr;