@@ -79,20 +79,23 @@ typedef struct _GEN_ADDR
7979//
8080typedef 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 ;
9294typedef RSDP * PRSDP ;
9395
9496typedef 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
108111typedef 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 ;
120126typedef FACS * PFACS ;
121127
122128typedef 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 ;
177191typedef FADT * PFADT ;
178192
@@ -185,13 +199,15 @@ typedef DSDT *PDSDT;
185199
186200typedef struct _RSDT
187201{
202+ // ACPI v1.0 (H.Rev=1)
188203 DESCRIPTION_HEADER Header ;
189204 ULONG Tables [ANYSIZE_ARRAY ];
190205} RSDT ;
191206typedef RSDT * PRSDT ;
192207
193208typedef 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