https://git.reactos.org/?p=reactos.git;a=commitdiff;h=ee5ff8ce0c3e01fa684140584348d4cd9589bd06

commit ee5ff8ce0c3e01fa684140584348d4cd9589bd06
Author:     Serge Gautherie <32623169+sergegauthe...@users.noreply.github.com>
AuthorDate: Thu Jan 16 19:55:39 2025 +0100
Commit:     GitHub <nore...@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;

Reply via email to