[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).
This commit is contained in:
Serge Gautherie 2025-01-16 19:55:39 +01:00 committed by GitHub
parent abe20f6120
commit ee5ff8ce0c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -79,20 +79,23 @@ typedef struct _GEN_ADDR
// //
typedef struct _RSDP typedef struct _RSDP
{ {
// ACPI v1.0 (Rev=0)
ULONGLONG Signature; ULONGLONG Signature;
UCHAR Checksum; UCHAR Checksum;
UCHAR OEMID[6]; UCHAR OEMID[6];
UCHAR Revision; UCHAR Revision; // Was reserved before ACPI v2.0 (Rev=2).
ULONG RsdtAddress; ULONG RsdtAddress;
// ACPI v2.0 (Rev=2)
ULONG Length; ULONG Length;
PHYSICAL_ADDRESS XsdtAddress; PHYSICAL_ADDRESS XsdtAddress;
UCHAR XChecksum; UCHAR XChecksum;
UCHAR Reserved[3]; UCHAR Reserved33[3];
} RSDP; } RSDP;
typedef RSDP *PRSDP; typedef RSDP *PRSDP;
typedef struct _DESCRIPTION_HEADER typedef struct _DESCRIPTION_HEADER
{ {
// ACPI v1.0
ULONG Signature; ULONG Signature;
ULONG Length; ULONG Length;
UCHAR Revision; UCHAR Revision;
@ -107,24 +110,28 @@ typedef DESCRIPTION_HEADER *PDESCRIPTION_HEADER;
typedef struct _FACS typedef struct _FACS
{ {
// ACPI v1.0 (Ver=0)
ULONG Signature; ULONG Signature;
ULONG Length; ULONG Length;
ULONG HardwareSignature; ULONG HardwareSignature;
ULONG pFirmwareWakingVector; ULONG pFirmwareWakingVector;
ULONG GlobalLock; ULONG GlobalLock;
ULONG Flags; ULONG Flags;
PHYSICAL_ADDRESS x_FirmwareWakingVector; PHYSICAL_ADDRESS x_FirmwareWakingVector; // Was reserved before ACPI v2.0 (Ver=1).
UCHAR version; UCHAR Version; // Was reserved before ACPI v2.0 (Ver=1).
UCHAR Reserved[32]; UCHAR Reserved33[3];
ULONG OsFlags; // Was reserved before ACPI v4.0 (Ver=2).
UCHAR Reserved40[24];
} FACS; } FACS;
typedef FACS *PFACS; typedef FACS *PFACS;
typedef struct _FADT typedef struct _FADT
{ {
// ACPI v1.0 (H.Rev=1)
DESCRIPTION_HEADER Header; DESCRIPTION_HEADER Header;
ULONG facs; ULONG facs;
ULONG dsdt; ULONG dsdt;
UCHAR int_model; UCHAR reserved44[1]; // Was int_model before ACPI v2.0.
UCHAR pm_profile; UCHAR pm_profile;
USHORT sci_int_vector; USHORT sci_int_vector;
ULONG smi_cmd_io_port; ULONG smi_cmd_io_port;
@ -158,11 +165,13 @@ typedef struct _FADT
UCHAR month_alarm_index; UCHAR month_alarm_index;
UCHAR century_alarm_index; UCHAR century_alarm_index;
USHORT boot_arch; USHORT boot_arch;
UCHAR reserved3[1]; UCHAR reserved111[1];
ULONG flags; ULONG flags;
// ACPI v1.5 (H.Rev=3)
GEN_ADDR reset_reg; GEN_ADDR reset_reg;
UCHAR reset_val; 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_firmware_ctrl;
PHYSICAL_ADDRESS x_dsdt; PHYSICAL_ADDRESS x_dsdt;
GEN_ADDR x_pm1a_evt_blk; GEN_ADDR x_pm1a_evt_blk;
@ -173,6 +182,11 @@ typedef struct _FADT
GEN_ADDR x_pm_tmr_blk; GEN_ADDR x_pm_tmr_blk;
GEN_ADDR x_gp0_blk; GEN_ADDR x_gp0_blk;
GEN_ADDR x_gp1_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; } FADT;
typedef FADT *PFADT; typedef FADT *PFADT;
@ -185,6 +199,7 @@ typedef DSDT *PDSDT;
typedef struct _RSDT typedef struct _RSDT
{ {
// ACPI v1.0 (H.Rev=1)
DESCRIPTION_HEADER Header; DESCRIPTION_HEADER Header;
ULONG Tables[ANYSIZE_ARRAY]; ULONG Tables[ANYSIZE_ARRAY];
} RSDT; } RSDT;
@ -192,6 +207,7 @@ typedef RSDT *PRSDT;
typedef struct _XSDT typedef struct _XSDT
{ {
// ACPI v2.0 (H.Rev=1)
DESCRIPTION_HEADER Header; DESCRIPTION_HEADER Header;
PHYSICAL_ADDRESS Tables[ANYSIZE_ARRAY]; PHYSICAL_ADDRESS Tables[ANYSIZE_ARRAY];
} XSDT; } XSDT;