https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ee5ff8ce0c3e01fa68414…
commit ee5ff8ce0c3e01fa684140584348d4cd9589bd06
Author: Serge Gautherie <32623169+SergeGautherie(a)users.noreply.github.com>
AuthorDate: Thu Jan 16 19:55:39 2025 +0100
Commit: GitHub <noreply(a)github.com>
CommitDate: Thu Jan 16 10:55:39 2025 -0800
[SDK:REACTOS] acpi.h: Update FACS and FADT types to ACPI v6.4 (#6042)
- FACS: Reduce size by 1 char.
- FADT: Add 3 new fields.
- Update reserved fields. Use offsets.
- Improve documentation.
Addendum to 0331781 (r46610).
---
sdk/include/reactos/drivers/acpi/acpi.h | 32 ++++++++++++++++++++++++--------
1 file changed, 24 insertions(+), 8 deletions(-)
diff --git a/sdk/include/reactos/drivers/acpi/acpi.h
b/sdk/include/reactos/drivers/acpi/acpi.h
index fc4acff699b..078145b461d 100644
--- a/sdk/include/reactos/drivers/acpi/acpi.h
+++ b/sdk/include/reactos/drivers/acpi/acpi.h
@@ -79,20 +79,23 @@ typedef struct _GEN_ADDR
//
typedef struct _RSDP
{
+ // ACPI v1.0 (Rev=0)
ULONGLONG Signature;
UCHAR Checksum;
UCHAR OEMID[6];
- UCHAR Revision;
+ UCHAR Revision; // Was reserved before ACPI v2.0 (Rev=2).
ULONG RsdtAddress;
+ // ACPI v2.0 (Rev=2)
ULONG Length;
PHYSICAL_ADDRESS XsdtAddress;
UCHAR XChecksum;
- UCHAR Reserved[3];
+ UCHAR Reserved33[3];
} RSDP;
typedef RSDP *PRSDP;
typedef struct _DESCRIPTION_HEADER
{
+ // ACPI v1.0
ULONG Signature;
ULONG Length;
UCHAR Revision;
@@ -107,24 +110,28 @@ typedef DESCRIPTION_HEADER *PDESCRIPTION_HEADER;
typedef struct _FACS
{
+ // ACPI v1.0 (Ver=0)
ULONG Signature;
ULONG Length;
ULONG HardwareSignature;
ULONG pFirmwareWakingVector;
ULONG GlobalLock;
ULONG Flags;
- PHYSICAL_ADDRESS x_FirmwareWakingVector;
- UCHAR version;
- UCHAR Reserved[32];
+ PHYSICAL_ADDRESS x_FirmwareWakingVector; // Was reserved before ACPI v2.0 (Ver=1).
+ UCHAR Version; // Was reserved before ACPI v2.0 (Ver=1).
+ UCHAR Reserved33[3];
+ ULONG OsFlags; // Was reserved before ACPI v4.0 (Ver=2).
+ UCHAR Reserved40[24];
} FACS;
typedef FACS *PFACS;
typedef struct _FADT
{
+ // ACPI v1.0 (H.Rev=1)
DESCRIPTION_HEADER Header;
ULONG facs;
ULONG dsdt;
- UCHAR int_model;
+ UCHAR reserved44[1]; // Was int_model before ACPI v2.0.
UCHAR pm_profile;
USHORT sci_int_vector;
ULONG smi_cmd_io_port;
@@ -158,11 +165,13 @@ typedef struct _FADT
UCHAR month_alarm_index;
UCHAR century_alarm_index;
USHORT boot_arch;
- UCHAR reserved3[1];
+ UCHAR reserved111[1];
ULONG flags;
+ // ACPI v1.5 (H.Rev=3)
GEN_ADDR reset_reg;
UCHAR reset_val;
- UCHAR reserved4[3];
+ USHORT arm_boot_arch; // Was reserved before ACPI v5.1.
+ UCHAR minor_revision; // Was reserved before ACPI v5.1.
PHYSICAL_ADDRESS x_firmware_ctrl;
PHYSICAL_ADDRESS x_dsdt;
GEN_ADDR x_pm1a_evt_blk;
@@ -173,6 +182,11 @@ typedef struct _FADT
GEN_ADDR x_pm_tmr_blk;
GEN_ADDR x_gp0_blk;
GEN_ADDR x_gp1_blk;
+ // ACPI v5.0 (H.Rev=5)
+ GEN_ADDR sleep_control;
+ GEN_ADDR sleep_status;
+ // ACPI v6.0 (H.Rev=6)
+ ULONGLONG hypervisor_id;
} FADT;
typedef FADT *PFADT;
@@ -185,6 +199,7 @@ typedef DSDT *PDSDT;
typedef struct _RSDT
{
+ // ACPI v1.0 (H.Rev=1)
DESCRIPTION_HEADER Header;
ULONG Tables[ANYSIZE_ARRAY];
} RSDT;
@@ -192,6 +207,7 @@ typedef RSDT *PRSDT;
typedef struct _XSDT
{
+ // ACPI v2.0 (H.Rev=1)
DESCRIPTION_HEADER Header;
PHYSICAL_ADDRESS Tables[ANYSIZE_ARRAY];
} XSDT;