Skip to content

Commit ee5ff8c

Browse files
[SDK:REACTOS] acpi.h: Update FACS and FADT types to ACPI v6.4 (reactos#6042)
- FACS: Reduce size by 1 char. - FADT: Add 3 new fields. - Update reserved fields. Use offsets. - Improve documentation. Addendum to 0331781 (r46610).
1 parent abe20f6 commit ee5ff8c

File tree

1 file changed

+24
-8
lines changed
  • sdk/include/reactos/drivers/acpi

1 file changed

+24
-8
lines changed

sdk/include/reactos/drivers/acpi/acpi.h

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -79,20 +79,23 @@ typedef struct _GEN_ADDR
7979
//
8080
typedef struct _RSDP
8181
{
82+
// ACPI v1.0 (Rev=0)
8283
ULONGLONG Signature;
8384
UCHAR Checksum;
8485
UCHAR OEMID[6];
85-
UCHAR Revision;
86+
UCHAR Revision; // Was reserved before ACPI v2.0 (Rev=2).
8687
ULONG RsdtAddress;
88+
// ACPI v2.0 (Rev=2)
8789
ULONG Length;
8890
PHYSICAL_ADDRESS XsdtAddress;
8991
UCHAR XChecksum;
90-
UCHAR Reserved[3];
92+
UCHAR Reserved33[3];
9193
} RSDP;
9294
typedef RSDP *PRSDP;
9395

9496
typedef struct _DESCRIPTION_HEADER
9597
{
98+
// ACPI v1.0
9699
ULONG Signature;
97100
ULONG Length;
98101
UCHAR Revision;
@@ -107,24 +110,28 @@ typedef DESCRIPTION_HEADER *PDESCRIPTION_HEADER;
107110

108111
typedef struct _FACS
109112
{
113+
// ACPI v1.0 (Ver=0)
110114
ULONG Signature;
111115
ULONG Length;
112116
ULONG HardwareSignature;
113117
ULONG pFirmwareWakingVector;
114118
ULONG GlobalLock;
115119
ULONG Flags;
116-
PHYSICAL_ADDRESS x_FirmwareWakingVector;
117-
UCHAR version;
118-
UCHAR Reserved[32];
120+
PHYSICAL_ADDRESS x_FirmwareWakingVector; // Was reserved before ACPI v2.0 (Ver=1).
121+
UCHAR Version; // Was reserved before ACPI v2.0 (Ver=1).
122+
UCHAR Reserved33[3];
123+
ULONG OsFlags; // Was reserved before ACPI v4.0 (Ver=2).
124+
UCHAR Reserved40[24];
119125
} FACS;
120126
typedef FACS *PFACS;
121127

122128
typedef struct _FADT
123129
{
130+
// ACPI v1.0 (H.Rev=1)
124131
DESCRIPTION_HEADER Header;
125132
ULONG facs;
126133
ULONG dsdt;
127-
UCHAR int_model;
134+
UCHAR reserved44[1]; // Was int_model before ACPI v2.0.
128135
UCHAR pm_profile;
129136
USHORT sci_int_vector;
130137
ULONG smi_cmd_io_port;
@@ -158,11 +165,13 @@ typedef struct _FADT
158165
UCHAR month_alarm_index;
159166
UCHAR century_alarm_index;
160167
USHORT boot_arch;
161-
UCHAR reserved3[1];
168+
UCHAR reserved111[1];
162169
ULONG flags;
170+
// ACPI v1.5 (H.Rev=3)
163171
GEN_ADDR reset_reg;
164172
UCHAR reset_val;
165-
UCHAR reserved4[3];
173+
USHORT arm_boot_arch; // Was reserved before ACPI v5.1.
174+
UCHAR minor_revision; // Was reserved before ACPI v5.1.
166175
PHYSICAL_ADDRESS x_firmware_ctrl;
167176
PHYSICAL_ADDRESS x_dsdt;
168177
GEN_ADDR x_pm1a_evt_blk;
@@ -173,6 +182,11 @@ typedef struct _FADT
173182
GEN_ADDR x_pm_tmr_blk;
174183
GEN_ADDR x_gp0_blk;
175184
GEN_ADDR x_gp1_blk;
185+
// ACPI v5.0 (H.Rev=5)
186+
GEN_ADDR sleep_control;
187+
GEN_ADDR sleep_status;
188+
// ACPI v6.0 (H.Rev=6)
189+
ULONGLONG hypervisor_id;
176190
} FADT;
177191
typedef FADT *PFADT;
178192

@@ -185,13 +199,15 @@ typedef DSDT *PDSDT;
185199

186200
typedef struct _RSDT
187201
{
202+
// ACPI v1.0 (H.Rev=1)
188203
DESCRIPTION_HEADER Header;
189204
ULONG Tables[ANYSIZE_ARRAY];
190205
} RSDT;
191206
typedef RSDT *PRSDT;
192207

193208
typedef struct _XSDT
194209
{
210+
// ACPI v2.0 (H.Rev=1)
195211
DESCRIPTION_HEADER Header;
196212
PHYSICAL_ADDRESS Tables[ANYSIZE_ARRAY];
197213
} XSDT;

0 commit comments

Comments
 (0)