diff options
Diffstat (limited to 'i386/i386at/acpi_parse_apic.h')
-rw-r--r-- | i386/i386at/acpi_parse_apic.h | 18 |
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; |