From 715419abe7cea465e1ededaca37369a06f1aa220 Mon Sep 17 00:00:00 2001 From: Aiken Harris Date: Fri, 17 Apr 2026 23:58:24 +0200 Subject: [PATCH] Introduce ACPI table structures for HPET and IOAPIC --- sdk/xtdk/hltypes.h | 31 +++++++++++++++++++++++++++++++ sdk/xtdk/xtstruct.h | 6 +++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/sdk/xtdk/hltypes.h b/sdk/xtdk/hltypes.h index 27e823d..a6a489f 100644 --- a/sdk/xtdk/hltypes.h +++ b/sdk/xtdk/hltypes.h @@ -319,6 +319,17 @@ typedef struct _ACPI_FADT GENERIC_ADDRESS SleepStatusReg; } PACKED ACPI_FADT, *PACPI_FADT; +/* ACPI High Precision Event Timer (HPET) table structure */ +typedef struct _ACPI_HPET +{ + ACPI_DESCRIPTION_HEADER Header; + ULONG EventTimerBlockId; + GENERIC_ADDRESS BaseAddress; + UCHAR HpetNumber; + USHORT MinimumTick; + UCHAR PageProtectionAndOem; +} PACKED ACPI_HPET, *PACPI_HPET; + /* ACPI Multiple APIC Description Table (MADT) structure */ typedef struct _ACPI_MADT { @@ -328,6 +339,26 @@ typedef struct _ACPI_MADT ULONG ApicTables[]; } PACKED ACPI_MADT, *PACPI_MADT; +/* ACPI Interrupt Override MADT subtable structure */ +typedef struct _ACPI_MADT_INTERRUPT_OVERRIDE +{ + ACPI_SUBTABLE_HEADER Header; + UCHAR Bus; + UCHAR SourceIrq; + ULONG GlobalSystemInterrupt; + USHORT Flags; +} PACKED ACPI_MADT_INTERRUPT_OVERRIDE, *PACPI_MADT_INTERRUPT_OVERRIDE; + +/* ACPI IO APIC MADT subtable structure */ +typedef struct _ACPI_MADT_IOAPIC +{ + ACPI_SUBTABLE_HEADER Header; + UCHAR IoApicId; + UCHAR Reserved; + ULONG IoApicAddress; + ULONG GlobalIrqBase; +} PACKED ACPI_MADT_IOAPIC, *PACPI_MADT_IOAPIC; + /* ACPI Local APIC MADT subtable structure */ typedef struct _ACPI_MADT_LOCAL_APIC { diff --git a/sdk/xtdk/xtstruct.h b/sdk/xtdk/xtstruct.h index a407660..cdd4455 100644 --- a/sdk/xtdk/xtstruct.h +++ b/sdk/xtdk/xtstruct.h @@ -66,8 +66,12 @@ typedef enum _WAIT_TYPE WAIT_TYPE, *PWAIT_TYPE; typedef struct _ACPI_CACHE_LIST ACPI_CACHE_LIST, *PACPI_CACHE_LIST; typedef struct _ACPI_DESCRIPTION_HEADER ACPI_DESCRIPTION_HEADER, *PACPI_DESCRIPTION_HEADER; typedef struct _ACPI_FADT ACPI_FADT, *PACPI_FADT; +typedef struct _ACPI_HPET ACPI_HPET, *PACPI_HPET; typedef struct _ACPI_MADT ACPI_MADT, *PACPI_MADT; -typedef struct _ACPI_MADT_TABLE_LOCAL_APIC ACPI_MADT_TABLE_LOCAL_APIC, *PACPI_MADT_TABLE_LOCAL_APIC; +typedef struct _ACPI_MADT_INTERRUPT_OVERRIDE ACPI_MADT_INTERRUPT_OVERRIDE, *PACPI_MADT_INTERRUPT_OVERRIDE; +typedef struct _ACPI_MADT_IOAPIC ACPI_MADT_IOAPIC, *PACPI_MADT_IOAPIC; +typedef struct _ACPI_MADT_LOCAL_APIC ACPI_MADT_LOCAL_APIC, *PACPI_MADT_LOCAL_APIC; +typedef struct _ACPI_MADT_LOCAL_X2APIC ACPI_MADT_LOCAL_X2APIC, *PACPI_MADT_LOCAL_X2APIC; typedef struct _ACPI_RSDP ACPI_RSDP, *PACPI_RSDP; typedef struct _ACPI_RSDT ACPI_RSDT, *PACPI_RSDT; typedef struct _ACPI_SUBTABLE_HEADER ACPI_SUBTABLE_HEADER, *PACPI_SUBTABLE_HEADER;