1 /**
2 	Based on IndustryStandard/Acpi30.h, original notice:
3 
4 	ACPI 3.0 definitions from the ACPI Specification Revision 3.0b October 10, 2006
5 	
6 	Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.
7 	This program and the accompanying materials
8 	are licensed and made available under the terms and conditions of the BSD License
9 	which accompanies this distribution.  The full text of the license may be found at
10 	http://opensource.org/licenses/bsd-license.php
11 	
12 	THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 	WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 **/
15 module uefi.acpi30;
16 import uefi.base;
17 import uefi.base_type;
18 import uefi.acpiaml;
19 import uefi.acpi10;
20 import uefi.acpi20;
21 
22 public:
23 extern (C):
24 // FIXME: INCLUDE <IndustryStandard/Acpi20.h>
25 enum ACPI_LARGE_EXTENDED_ADDRESS_SPACE_DESCRIPTOR_NAME = 0x0B;
26 enum ACPI_EXTENDED_ADDRESS_SPACE_DESCRIPTOR = 0x8B;
27 /// Extended Address Space Descriptor
28 struct EFI_ACPI_EXTENDED_ADDRESS_SPACE_DESCRIPTOR
29 {
30 align(1):
31     ACPI_LARGE_RESOURCE_HEADER Header;
32     UINT8 ResType;
33     UINT8 GenFlag;
34     UINT8 SpecificFlag;
35     UINT8 RevisionId;
36     UINT8 Reserved;
37     UINT64 AddrSpaceGranularity;
38     UINT64 AddrRangeMin;
39     UINT64 AddrRangeMax;
40     UINT64 AddrTranslationOffset;
41     UINT64 AddrLen;
42     UINT64 TypeSpecificAttribute;
43 }
44 
45 enum EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_UC = 0x0000000000000001;
46 enum EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WC = 0x0000000000000002;
47 enum EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WT = 0x0000000000000004;
48 enum EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_WB = 0x0000000000000008;
49 enum EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_UCE = 0x0000000000000010;
50 enum EFI_ACPI_MEMORY_TYPE_SPECIFIC_ATTRIBUTES_NV = 0x0000000000008000;
51 /// ACPI 3.0 Generic Address Space definition
52 struct EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE
53 {
54 align(1):
55     UINT8 AddressSpaceId;
56     UINT8 RegisterBitWidth;
57     UINT8 RegisterBitOffset;
58     UINT8 AccessSize;
59     UINT64 Address;
60 }
61 
62 enum EFI_ACPI_3_0_SYSTEM_MEMORY = 0;
63 enum EFI_ACPI_3_0_SYSTEM_IO = 1;
64 enum EFI_ACPI_3_0_PCI_CONFIGURATION_SPACE = 2;
65 enum EFI_ACPI_3_0_EMBEDDED_CONTROLLER = 3;
66 enum EFI_ACPI_3_0_SMBUS = 4;
67 enum EFI_ACPI_3_0_FUNCTIONAL_FIXED_HARDWARE = 0x7F;
68 enum EFI_ACPI_3_0_UNDEFINED = 0;
69 enum EFI_ACPI_3_0_BYTE = 1;
70 enum EFI_ACPI_3_0_WORD = 2;
71 enum EFI_ACPI_3_0_DWORD = 3;
72 enum EFI_ACPI_3_0_QWORD = 4;
73 /// Root System Description Pointer Structure
74 struct EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER
75 {
76 align(1):
77     UINT64 Signature;
78     UINT8 Checksum;
79     UINT8[6] OemId;
80     UINT8 Revision;
81     UINT32 RsdtAddress;
82     UINT32 Length;
83     UINT64 XsdtAddress;
84     UINT8 ExtendedChecksum;
85     UINT8[3] Reserved;
86 }
87 /// RSD_PTR Revision (as defined in ACPI 3.0b spec.)
88 enum EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_REVISION = 0x02; ///< ACPISpec (Revision 3.0b) says current value is 2 
89 /// Common table header, this prefaces all ACPI tables, including FACS, but
90 /// excluding the RSD PTR structure
91 struct EFI_ACPI_3_0_COMMON_HEADER
92 {
93 align(1):
94     UINT32 Signature;
95     UINT32 Length;
96 }
97 /// RSDT Revision (as defined in ACPI 3.0 spec.)
98 enum EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_REVISION = 0x01;
99 /// XSDT Revision (as defined in ACPI 3.0 spec.)
100 enum EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_REVISION = 0x01;
101 /// Fixed ACPI Description Table Structure (FADT)
102 struct EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE
103 {
104 align(1):
105     EFI_ACPI_DESCRIPTION_HEADER Header;
106     UINT32 FirmwareCtrl;
107     UINT32 Dsdt;
108     UINT8 Reserved0;
109     UINT8 PreferredPmProfile;
110     UINT16 SciInt;
111     UINT32 SmiCmd;
112     UINT8 AcpiEnable;
113     UINT8 AcpiDisable;
114     UINT8 S4BiosReq;
115     UINT8 PstateCnt;
116     UINT32 Pm1aEvtBlk;
117     UINT32 Pm1bEvtBlk;
118     UINT32 Pm1aCntBlk;
119     UINT32 Pm1bCntBlk;
120     UINT32 Pm2CntBlk;
121     UINT32 PmTmrBlk;
122     UINT32 Gpe0Blk;
123     UINT32 Gpe1Blk;
124     UINT8 Pm1EvtLen;
125     UINT8 Pm1CntLen;
126     UINT8 Pm2CntLen;
127     UINT8 PmTmrLen;
128     UINT8 Gpe0BlkLen;
129     UINT8 Gpe1BlkLen;
130     UINT8 Gpe1Base;
131     UINT8 CstCnt;
132     UINT16 PLvl2Lat;
133     UINT16 PLvl3Lat;
134     UINT16 FlushSize;
135     UINT16 FlushStride;
136     UINT8 DutyOffset;
137     UINT8 DutyWidth;
138     UINT8 DayAlrm;
139     UINT8 MonAlrm;
140     UINT8 Century;
141     UINT16 IaPcBootArch;
142     UINT8 Reserved1;
143     UINT32 Flags;
144     EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE ResetReg;
145     UINT8 ResetValue;
146     UINT8[3] Reserved2;
147     UINT64 XFirmwareCtrl;
148     UINT64 XDsdt;
149     EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk;
150     EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk;
151     EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk;
152     EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk;
153     EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk;
154     EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk;
155     EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk;
156     EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk;
157 }
158 /// FADT Version (as defined in ACPI 3.0 spec.)
159 enum EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION = 0x04;
160 enum EFI_ACPI_3_0_PM_PROFILE_UNSPECIFIED = 0;
161 enum EFI_ACPI_3_0_PM_PROFILE_DESKTOP = 1;
162 enum EFI_ACPI_3_0_PM_PROFILE_MOBILE = 2;
163 enum EFI_ACPI_3_0_PM_PROFILE_WORKSTATION = 3;
164 enum EFI_ACPI_3_0_PM_PROFILE_ENTERPRISE_SERVER = 4;
165 enum EFI_ACPI_3_0_PM_PROFILE_SOHO_SERVER = 5;
166 enum EFI_ACPI_3_0_PM_PROFILE_APPLIANCE_PC = 6;
167 enum EFI_ACPI_3_0_PM_PROFILE_PERFORMANCE_SERVER = 7;
168 enum EFI_ACPI_3_0_LEGACY_DEVICES = BIT0;
169 enum EFI_ACPI_3_0_8042 = BIT1;
170 enum EFI_ACPI_3_0_VGA_NOT_PRESENT = BIT2;
171 enum EFI_ACPI_3_0_MSI_NOT_SUPPORTED = BIT3;
172 enum EFI_ACPI_3_0_PCIE_ASPM_CONTROLS = BIT4;
173 enum EFI_ACPI_3_0_WBINVD = BIT0;
174 enum EFI_ACPI_3_0_WBINVD_FLUSH = BIT1;
175 enum EFI_ACPI_3_0_PROC_C1 = BIT2;
176 enum EFI_ACPI_3_0_P_LVL2_UP = BIT3;
177 enum EFI_ACPI_3_0_PWR_BUTTON = BIT4;
178 enum EFI_ACPI_3_0_SLP_BUTTON = BIT5;
179 enum EFI_ACPI_3_0_FIX_RTC = BIT6;
180 enum EFI_ACPI_3_0_RTC_S4 = BIT7;
181 enum EFI_ACPI_3_0_TMR_VAL_EXT = BIT8;
182 enum EFI_ACPI_3_0_DCK_CAP = BIT9;
183 enum EFI_ACPI_3_0_RESET_REG_SUP = BIT10;
184 enum EFI_ACPI_3_0_SEALED_CASE = BIT11;
185 enum EFI_ACPI_3_0_HEADLESS = BIT12;
186 enum EFI_ACPI_3_0_CPU_SW_SLP = BIT13;
187 enum EFI_ACPI_3_0_PCI_EXP_WAK = BIT14;
188 enum EFI_ACPI_3_0_USE_PLATFORM_CLOCK = BIT15;
189 enum EFI_ACPI_3_0_S4_RTC_STS_VALID = BIT16;
190 enum EFI_ACPI_3_0_REMOTE_POWER_ON_CAPABLE = BIT17;
191 enum EFI_ACPI_3_0_FORCE_APIC_CLUSTER_MODEL = BIT18;
192 enum EFI_ACPI_3_0_FORCE_APIC_PHYSICAL_DESTINATION_MODE = BIT19;
193 /// Firmware ACPI Control Structure
194 struct EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE
195 {
196 align(1):
197     UINT32 Signature;
198     UINT32 Length;
199     UINT32 HardwareSignature;
200     UINT32 FirmwareWakingVector;
201     UINT32 GlobalLock;
202     UINT32 Flags;
203     UINT64 XFirmwareWakingVector;
204     UINT8 Version;
205     UINT8[31] Reserved;
206 }
207 /// FACS Version (as defined in ACPI 3.0 spec.)
208 enum EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_VERSION = 0x01;
209 /// Firmware Control Structure Feature Flags
210 /// All other bits are reserved and must be set to 0.
211 enum EFI_ACPI_3_0_S4BIOS_F = BIT0;
212 enum EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_REVISION = 0x02;
213 enum EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_REVISION = 0x02;
214 /// Multiple APIC Description Table header definition.  The rest of the table
215 /// must be defined in a platform specific manner.
216 struct EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER
217 {
218 align(1):
219     EFI_ACPI_DESCRIPTION_HEADER Header;
220     UINT32 LocalApicAddress;
221     UINT32 Flags;
222 }
223 /// MADT Revision (as defined in ACPI 3.0 spec.)
224 enum EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION = 0x02;
225 /// Multiple APIC Flags
226 /// All other bits are reserved and must be set to 0.
227 enum EFI_ACPI_3_0_PCAT_COMPAT = BIT0;
228 enum EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC = 0x00;
229 enum EFI_ACPI_3_0_IO_APIC = 0x01;
230 enum EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE = 0x02;
231 enum EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE = 0x03;
232 enum EFI_ACPI_3_0_LOCAL_APIC_NMI = 0x04;
233 enum EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE = 0x05;
234 enum EFI_ACPI_3_0_IO_SAPIC = 0x06;
235 enum EFI_ACPI_3_0_LOCAL_SAPIC = 0x07;
236 enum EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES = 0x08;
237 /// Processor Local APIC Structure Definition
238 struct EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_STRUCTURE
239 {
240 align(1):
241     UINT8 Type;
242     UINT8 Length;
243     UINT8 AcpiProcessorId;
244     UINT8 ApicId;
245     UINT32 Flags;
246 }
247 /// Local APIC Flags.  All other bits are reserved and must be 0.
248 enum EFI_ACPI_3_0_LOCAL_APIC_ENABLED = BIT0;
249 /// IO APIC Structure
250 struct EFI_ACPI_3_0_IO_APIC_STRUCTURE
251 {
252 align(1):
253     UINT8 Type;
254     UINT8 Length;
255     UINT8 IoApicId;
256     UINT8 Reserved;
257     UINT32 IoApicAddress;
258     UINT32 GlobalSystemInterruptBase;
259 }
260 /// Interrupt Source Override Structure
261 struct EFI_ACPI_3_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE
262 {
263 align(1):
264     UINT8 Type;
265     UINT8 Length;
266     UINT8 Bus;
267     UINT8 Source;
268     UINT32 GlobalSystemInterrupt;
269     UINT16 Flags;
270 }
271 /// Platform Interrupt Sources Structure Definition
272 struct EFI_ACPI_3_0_PLATFORM_INTERRUPT_APIC_STRUCTURE
273 {
274 align(1):
275     UINT8 Type;
276     UINT8 Length;
277     UINT16 Flags;
278     UINT8 InterruptType;
279     UINT8 ProcessorId;
280     UINT8 ProcessorEid;
281     UINT8 IoSapicVector;
282     UINT32 GlobalSystemInterrupt;
283     UINT32 PlatformInterruptSourceFlags;
284     UINT8 CpeiProcessorOverride;
285     UINT8[31] Reserved;
286 }
287 
288 enum EFI_ACPI_3_0_POLARITY = (3 << 0);
289 enum EFI_ACPI_3_0_TRIGGER_MODE = (3 << 2);
290 /// Non-Maskable Interrupt Source Structure
291 struct EFI_ACPI_3_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE
292 {
293 align(1):
294     UINT8 Type;
295     UINT8 Length;
296     UINT16 Flags;
297     UINT32 GlobalSystemInterrupt;
298 }
299 /// Local APIC NMI Structure
300 struct EFI_ACPI_3_0_LOCAL_APIC_NMI_STRUCTURE
301 {
302 align(1):
303     UINT8 Type;
304     UINT8 Length;
305     UINT8 AcpiProcessorId;
306     UINT16 Flags;
307     UINT8 LocalApicLint;
308 }
309 /// Local APIC Address Override Structure
310 struct EFI_ACPI_3_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE
311 {
312 align(1):
313     UINT8 Type;
314     UINT8 Length;
315     UINT16 Reserved;
316     UINT64 LocalApicAddress;
317 }
318 /// IO SAPIC Structure
319 struct EFI_ACPI_3_0_IO_SAPIC_STRUCTURE
320 {
321 align(1):
322     UINT8 Type;
323     UINT8 Length;
324     UINT8 IoApicId;
325     UINT8 Reserved;
326     UINT32 GlobalSystemInterruptBase;
327     UINT64 IoSapicAddress;
328 }
329 /// Local SAPIC Structure
330 /// This struct followed by a null-terminated ASCII string - ACPI Processor UID String
331 struct EFI_ACPI_3_0_PROCESSOR_LOCAL_SAPIC_STRUCTURE
332 {
333 align(1):
334     UINT8 Type;
335     UINT8 Length;
336     UINT8 AcpiProcessorId;
337     UINT8 LocalSapicId;
338     UINT8 LocalSapicEid;
339     UINT8[3] Reserved;
340     UINT32 Flags;
341     UINT32 ACPIProcessorUIDValue;
342 }
343 /// Platform Interrupt Sources Structure
344 struct EFI_ACPI_3_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE
345 {
346 align(1):
347     UINT8 Type;
348     UINT8 Length;
349     UINT16 Flags;
350     UINT8 InterruptType;
351     UINT8 ProcessorId;
352     UINT8 ProcessorEid;
353     UINT8 IoSapicVector;
354     UINT32 GlobalSystemInterrupt;
355     UINT32 PlatformInterruptSourceFlags;
356 }
357 /// Platform Interrupt Source Flags.
358 /// All other bits are reserved and must be set to 0.
359 enum EFI_ACPI_3_0_CPEI_PROCESSOR_OVERRIDE = BIT0;
360 /// Smart Battery Description Table (SBST)
361 struct EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE
362 {
363 align(1):
364     EFI_ACPI_DESCRIPTION_HEADER Header;
365     UINT32 WarningEnergyLevel;
366     UINT32 LowEnergyLevel;
367     UINT32 CriticalEnergyLevel;
368 }
369 /// SBST Version (as defined in ACPI 3.0 spec.)
370 enum EFI_ACPI_3_0_SMART_BATTERY_DESCRIPTION_TABLE_REVISION = 0x01;
371 /// Embedded Controller Boot Resources Table (ECDT)
372 /// The table is followed by a null terminated ASCII string that contains
373 /// a fully qualified reference to the name space object.
374 struct EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE
375 {
376 align(1):
377     EFI_ACPI_DESCRIPTION_HEADER Header;
378     EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE EcControl;
379     EFI_ACPI_3_0_GENERIC_ADDRESS_STRUCTURE EcData;
380     UINT32 Uid;
381     UINT8 GpeBit;
382 }
383 /// ECDT Version (as defined in ACPI 3.0 spec.)
384 enum EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_REVISION = 0x01;
385 /// System Resource Affinity Table (SRAT.  The rest of the table
386 /// must be defined in a platform specific manner.
387 struct EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_HEADER
388 {
389 align(1):
390     EFI_ACPI_DESCRIPTION_HEADER Header;
391     UINT32 Reserved1; ///< Must be set to 1
392     UINT64 Reserved2;
393 }
394 /// SRAT Version (as defined in ACPI 3.0 spec.)
395 enum EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_REVISION = 0x02;
396 enum EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY = 0x00;
397 enum EFI_ACPI_3_0_MEMORY_AFFINITY = 0x01;
398 /// Processor Local APIC/SAPIC Affinity Structure Definition
399 struct EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_AFFINITY_STRUCTURE
400 {
401 align(1):
402     UINT8 Type;
403     UINT8 Length;
404     UINT8 ProximityDomain7To0;
405     UINT8 ApicId;
406     UINT32 Flags;
407     UINT8 LocalSapicEid;
408     UINT8[3] ProximityDomain31To8;
409     UINT8[4] Reserved;
410 }
411 /// Local APIC/SAPIC Flags.  All other bits are reserved and must be 0.
412 enum EFI_ACPI_3_0_PROCESSOR_LOCAL_APIC_SAPIC_ENABLED = (1 << 0);
413 /// Memory Affinity Structure Definition
414 struct EFI_ACPI_3_0_MEMORY_AFFINITY_STRUCTURE
415 {
416 align(1):
417     UINT8 Type;
418     UINT8 Length;
419     UINT32 ProximityDomain;
420     UINT16 Reserved1;
421     UINT32 AddressBaseLow;
422     UINT32 AddressBaseHigh;
423     UINT32 LengthLow;
424     UINT32 LengthHigh;
425     UINT32 Reserved2;
426     UINT32 Flags;
427     UINT64 Reserved3;
428 }
429 
430 enum EFI_ACPI_3_0_MEMORY_ENABLED = (1 << 0);
431 enum EFI_ACPI_3_0_MEMORY_HOT_PLUGGABLE = (1 << 1);
432 enum EFI_ACPI_3_0_MEMORY_NONVOLATILE = (1 << 2);
433 /// System Locality Distance Information Table (SLIT).
434 /// The rest of the table is a matrix.
435 struct EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_HEADER
436 {
437 align(1):
438     EFI_ACPI_DESCRIPTION_HEADER Header;
439     UINT64 NumberOfSystemLocalities;
440 }
441 /// SLIT Version (as defined in ACPI 3.0 spec.)
442 enum EFI_ACPI_3_0_SYSTEM_LOCALITY_DISTANCE_INFORMATION_TABLE_REVISION = 0x01;
443 /// "RSD PTR " Root System Description Pointer
444 enum EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_POINTER_SIGNATURE = SIGNATURE_64('R',
445         'S', 'D', ' ', 'P', 'T', 'R', ' ');
446 /// "APIC" Multiple APIC Description Table
447 enum EFI_ACPI_3_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE = SIGNATURE_32('A', 'P',
448         'I', 'C');
449 /// "DSDT" Differentiated System Description Table
450 enum EFI_ACPI_3_0_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE = SIGNATURE_32(
451         'D', 'S', 'D', 'T');
452 /// "ECDT" Embedded Controller Boot Resources Table
453 enum EFI_ACPI_3_0_EMBEDDED_CONTROLLER_BOOT_RESOURCES_TABLE_SIGNATURE = SIGNATURE_32(
454         'E', 'C', 'D', 'T');
455 /// "FACP" Fixed ACPI Description Table
456 enum EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE = SIGNATURE_32('F', 'A', 'C',
457         'P');
458 /// "FACS" Firmware ACPI Control Structure
459 enum EFI_ACPI_3_0_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE = SIGNATURE_32('F', 'A',
460         'C', 'S');
461 /// "PSDT" Persistent System Description Table
462 enum EFI_ACPI_3_0_PERSISTENT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE = SIGNATURE_32('P',
463         'S', 'D', 'T');
464 /// "RSDT" Root System Description Table
465 enum EFI_ACPI_3_0_ROOT_SYSTEM_DESCRIPTION_TABLE_SIGNATURE = SIGNATURE_32('R', 'S',
466         'D', 'T');
467 /// "SBST" Smart Battery Specification Table
468 enum EFI_ACPI_3_0_SMART_BATTERY_SPECIFICATION_TABLE_SIGNATURE = SIGNATURE_32('S', 'B',
469         'S', 'T');
470 /// "SLIT" System Locality Information Table
471 enum EFI_ACPI_3_0_SYSTEM_LOCALITY_INFORMATION_TABLE_SIGNATURE = SIGNATURE_32('S', 'L',
472         'I', 'T');
473 /// "SRAT" System Resource Affinity Table
474 enum EFI_ACPI_3_0_SYSTEM_RESOURCE_AFFINITY_TABLE_SIGNATURE = SIGNATURE_32('S', 'R',
475         'A', 'T');
476 /// "SSDT" Secondary System Description Table
477 enum EFI_ACPI_3_0_SECONDARY_SYSTEM_DESCRIPTION_TABLE_SIGNATURE = SIGNATURE_32('S',
478         'S', 'D', 'T');
479 /// "XSDT" Extended System Description Table
480 enum EFI_ACPI_3_0_EXTENDED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE = SIGNATURE_32('X', 'S',
481         'D', 'T');
482 /// "BOOT" MS Simple Boot Spec
483 enum EFI_ACPI_3_0_SIMPLE_BOOT_FLAG_TABLE_SIGNATURE = SIGNATURE_32('B', 'O', 'O', 'T');
484 /// "CPEP" Corrected Platform Error Polling Table
485 enum EFI_ACPI_3_0_CORRECTED_PLATFORM_ERROR_POLLING_TABLE_SIGNATURE = SIGNATURE_32(
486         'C', 'P', 'E', 'P');
487 /// "DBGP" MS Debug Port Spec
488 enum EFI_ACPI_3_0_DEBUG_PORT_TABLE_SIGNATURE = SIGNATURE_32('D', 'B', 'G', 'P');
489 /// "ETDT" Event Timer Description Table
490 enum EFI_ACPI_3_0_EVENT_TIMER_DESCRIPTION_TABLE_SIGNATURE = SIGNATURE_32('E', 'T',
491         'D', 'T');
492 /// "HPET" IA-PC High Precision Event Timer Table
493 enum EFI_ACPI_3_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE = SIGNATURE_32('H', 'P',
494         'E', 'T');
495 /// "MCFG" PCI Express Memory Mapped Configuration Space Base Address Description Table
496 enum EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE = SIGNATURE_32(
497         'M', 'C', 'F', 'G');
498 /// "SPCR" Serial Port Concole Redirection Table
499 enum EFI_ACPI_3_0_SERIAL_PORT_CONSOLE_REDIRECTION_TABLE_SIGNATURE = SIGNATURE_32('S',
500         'P', 'C', 'R');
501 /// "SPMI" Server Platform Management Interface Table
502 enum EFI_ACPI_3_0_SERVER_PLATFORM_MANAGEMENT_INTERFACE_TABLE_SIGNATURE = SIGNATURE_32(
503         'S', 'P', 'M', 'I');
504 /// "TCPA" Trusted Computing Platform Alliance Capabilities Table
505 enum EFI_ACPI_3_0_TRUSTED_COMPUTING_PLATFORM_ALLIANCE_CAPABILITIES_TABLE_SIGNATURE = SIGNATURE_32(
506         'T', 'C', 'P', 'A');
507 /// "WDRT" Watchdog Resource Table
508 enum EFI_ACPI_3_0_WATCHDOG_RESOURCE_TABLE_SIGNATURE = SIGNATURE_32('W', 'D', 'R', 'T');
509 /// "WDAT" Watchdog Action Table
510 enum EFI_ACPI_3_0_WATCHDOG_ACTION_TABLE_SIGNATURE = SIGNATURE_32('W', 'D', 'A', 'T');
511 /// "WSPT" Windows Specific Properties Table
512 enum EFI_ACPI_3_0_WINDOWS_SPECIFIC_PROPERTIES_TABLE_SIGNATURE = SIGNATURE_32('W', 'S',
513         'P', 'T');
514 /// "iBFT" iSCSI Boot Firmware Table
515 enum EFI_ACPI_3_0_ISCSI_BOOT_FIRMWARE_TABLE_SIGNATURE = SIGNATURE_32('i', 'B', 'F',
516         'T');