2 Header file for ACPI parser
4 Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
5 Copyright (c) 2016 - 2020, Arm Limited. All rights reserved.
6 Copyright (c) 2022, AMD Incorporated. All rights reserved.
7 SPDX-License-Identifier: BSD-2-Clause-Patent
13 #define OUTPUT_FIELD_COLUMN_WIDTH 36
15 /// The RSDP table signature is "RSD PTR " (8 bytes)
16 /// However The signature for ACPI tables is 4 bytes.
17 /// To work around this oddity define a signature type
18 /// that allows us to process the log options.
19 #define RSDP_TABLE_INFO SIGNATURE_32('R', 'S', 'D', 'P')
22 This function increments the ACPI table error counter.
31 This function increments the ACPI table warning counter.
35 IncrementWarningCount (
40 This function verifies the ACPI table checksum.
42 This function verifies the checksum for the ACPI table and optionally
45 @param [in] Log If TRUE log the status of the checksum.
46 @param [in] Ptr Pointer to the start of the table buffer.
47 @param [in] Length The length of the buffer.
49 @retval TRUE The checksum is OK.
50 @retval FALSE The checksum failed.
61 This function performs a raw data dump of the ACPI table.
63 @param [in] Ptr Pointer to the start of the table buffer.
64 @param [in] Length The length of the buffer.
74 This function traces 1 byte of datum as specified in the format string.
76 @param [in] Format The format string for tracing the data.
77 @param [in] Ptr Pointer to the start of the buffer.
82 IN CONST CHAR16
*Format
,
87 This function traces 2 bytes of data as specified in the format string.
89 @param [in] Format The format string for tracing the data.
90 @param [in] Ptr Pointer to the start of the buffer.
95 IN CONST CHAR16
*Format
,
100 This function traces 4 bytes of data as specified in the format string.
102 @param [in] Format The format string for tracing the data.
103 @param [in] Ptr Pointer to the start of the buffer.
108 IN CONST CHAR16
*Format
,
113 This function traces 8 bytes of data as specified by the format string.
115 @param [in] Format The format string for tracing the data.
116 @param [in] Ptr Pointer to the start of the buffer.
121 IN CONST CHAR16
*Format
,
126 This function traces 3 characters which can be optionally
127 formated using the format string if specified.
129 If no format string is specified the Format must be NULL.
131 @param [in] Format Optional format string for tracing the data.
132 @param [in] Ptr Pointer to the start of the buffer.
137 IN CONST CHAR16
*Format OPTIONAL
,
142 This function traces 4 characters which can be optionally
143 formated using the format string if specified.
145 If no format string is specified the Format must be NULL.
147 @param [in] Format Optional format string for tracing the data.
148 @param [in] Ptr Pointer to the start of the buffer.
153 IN CONST CHAR16
*Format OPTIONAL
,
158 This function traces 6 characters which can be optionally
159 formated using the format string if specified.
161 If no format string is specified the Format must be NULL.
163 @param [in] Format Optional format string for tracing the data.
164 @param [in] Ptr Pointer to the start of the buffer.
169 IN CONST CHAR16
*Format OPTIONAL
,
174 This function traces 8 characters which can be optionally
175 formated using the format string if specified.
177 If no format string is specified the Format must be NULL.
179 @param [in] Format Optional format string for tracing the data.
180 @param [in] Ptr Pointer to the start of the buffer.
185 IN CONST CHAR16
*Format OPTIONAL
,
190 This function traces 12 characters which can be optionally
191 formated using the format string if specified.
193 If no format string is specified the Format must be NULL.
195 @param [in] Format Optional format string for tracing the data.
196 @param [in] Ptr Pointer to the start of the buffer.
201 IN CONST CHAR16
*Format OPTIONAL
,
206 This function indents and prints the ACPI table Field Name.
208 @param [in] Indent Number of spaces to add to the global table
209 indent. The global table indent is 0 by default;
210 however this value is updated on entry to the
211 ParseAcpi() by adding the indent value provided to
212 ParseAcpi() and restored back on exit. Therefore
213 the total indent in the output is dependent on from
214 where this function is called.
215 @param [in] FieldName Pointer to the Field Name.
221 IN CONST CHAR16
*FieldName
225 This function pointer is the template for customizing the trace output
227 @param [in] Format Format string for tracing the data as specified by
228 the 'Format' member of ACPI_PARSER.
229 @param [in] Ptr Pointer to the start of the buffer.
231 typedef VOID (EFIAPI
*FNPTR_PRINT_FORMATTER
)(CONST CHAR16
*Format
, UINT8
*Ptr
);
234 This function pointer is the template for validating an ACPI table field.
236 @param [in] Ptr Pointer to the start of the field data.
237 @param [in] Context Pointer to context specific information as specified by
238 the 'Context' member of the ACPI_PARSER.
239 e.g. this could be a pointer to the ACPI table header.
241 typedef VOID (EFIAPI
*FNPTR_FIELD_VALIDATOR
)(UINT8
*Ptr
, VOID
*Context
);
244 The ACPI_PARSER structure describes the fields of an ACPI table and
245 provides means for the parser to interpret and trace appropriately.
247 The first three members are populated based on information present in
248 in the ACPI table specifications. The remaining members describe how
249 the parser should report the field information, validate the field data
250 and/or update an external pointer to the field (ItemPtr).
252 ParseAcpi() uses the format string specified by 'Format' for tracing
253 the field data. If the field is more complex and requires additional
254 processing for formatting and representation a print formatter function
255 can be specified in 'PrintFormatter'.
257 ParseAcpiBitFields() uses AcpiParser structure to parse the bit fields.
258 It considers Length as a number of bits that need to be parsed.
259 Also, the Offset field will be considered as starting offset of the bitfield.
261 The PrintFormatter function may choose to use the format string
262 specified by 'Format' or use its own internal format string.
264 The 'Format' and 'PrintFormatter' members allow flexibility for
265 representing the field data.
267 typedef struct AcpiParser
{
268 /// String describing the ACPI table field
269 /// (Field column from ACPI table spec)
270 CONST CHAR16
*NameStr
;
272 /// The length of the field.
273 /// (Byte Length column from ACPI table spec)
274 /// Length(in bits) of the bitfield if used with ParseAcpiBitFields().
277 /// The offset of the field from the start of the table.
278 /// (Byte Offset column from ACPI table spec)
279 /// The Bit offset of the field if used with ParseAcpiBitFields().
282 /// Optional Print() style format string for tracing the data. If not
283 /// used this must be set to NULL.
284 CONST CHAR16
*Format
;
286 /// Optional pointer to a print formatter function which
287 /// is typically used to trace complex field information.
288 /// If not used this must be set to NULL.
289 /// The Format string is passed to the PrintFormatter function
290 /// but may be ignored by the implementation code.
291 FNPTR_PRINT_FORMATTER PrintFormatter
;
293 /// Optional pointer which may be set to request the parser to update
294 /// a pointer to the field data. This value is set after the FieldValidator
295 /// has been called and therefore should not be used by the FieldValidator.
296 /// If unused this must be set to NULL.
297 /// ItemPtr is not supported with ParseAcpiBitFields().
300 /// Optional pointer to a field validator function.
301 /// The function should directly report any appropriate error or warning
302 /// and invoke the appropriate counter update function.
303 /// If not used this parameter must be set to NULL.
304 FNPTR_FIELD_VALIDATOR FieldValidator
;
306 /// Optional pointer to context specific information,
307 /// which the Field Validator function can use to determine
308 /// additional information about the ACPI table and make
309 /// decisions about the field being validated.
310 /// e.g. this could be a pointer to the ACPI table header
315 A structure used to store the pointers to the members of the
316 ACPI description header structure that was parsed.
318 typedef struct AcpiDescriptionHeaderInfo
{
319 /// ACPI table signature
321 /// Length of the ACPI table
327 /// OEM Id - length is 6 bytes
336 UINT32
*CreatorRevision
;
337 } ACPI_DESCRIPTION_HEADER_INFO
;
340 This function is used to parse an ACPI table buffer.
342 The ACPI table buffer is parsed using the ACPI table parser information
343 specified by a pointer to an array of ACPI_PARSER elements. This parser
344 function iterates through each item on the ACPI_PARSER array and logs the
347 This function can optionally be used to parse ACPI tables and fetch specific
348 field values. The ItemPtr member of the ACPI_PARSER structure (where used)
349 is updated by this parser function to point to the selected field data
350 (e.g. useful for variable length nested fields).
352 @param [in] Trace Trace the ACPI fields TRUE else only parse the
354 @param [in] Indent Number of spaces to indent the output.
355 @param [in] AsciiName Optional pointer to an ASCII string that describes
356 the table being parsed.
357 @param [in] Ptr Pointer to the start of the buffer.
358 @param [in] Length Length of the buffer pointed by Ptr.
359 @param [in] Parser Pointer to an array of ACPI_PARSER structure that
360 describes the table being parsed.
361 @param [in] ParserItems Number of items in the ACPI_PARSER array.
363 @retval Number of bytes parsed.
370 IN CONST CHAR8
*AsciiName OPTIONAL
,
373 IN CONST ACPI_PARSER
*Parser
,
374 IN UINT32 ParserItems
378 This function is used to parse an ACPI table bitfield buffer.
380 The ACPI table buffer is parsed using the ACPI table parser information
381 specified by a pointer to an array of ACPI_PARSER elements. This parser
382 function iterates through each item on the ACPI_PARSER array and logs the ACPI table bitfields.
384 This function can optionally be used to parse ACPI tables and fetch specific
385 field values. The ItemPtr member of the ACPI_PARSER structure (where used)
386 is updated by this parser function to point to the selected field data
387 (e.g. useful for variable length nested fields).
389 ItemPtr member of ACPI_PARSER is not supported with this function.
391 @param [in] Trace Trace the ACPI fields TRUE else only parse the
393 @param [in] Indent Number of spaces to indent the output.
394 @param [in] AsciiName Optional pointer to an ASCII string that describes
395 the table being parsed.
396 @param [in] Ptr Pointer to the start of the buffer.
397 @param [in] Length Length of the buffer pointed by Ptr.
398 @param [in] Parser Pointer to an array of ACPI_PARSER structure that
399 describes the table being parsed.
400 @param [in] ParserItems Number of items in the ACPI_PARSER array.
402 @retval Number of bits parsed.
409 IN CONST CHAR8
*AsciiName OPTIONAL
,
412 IN CONST ACPI_PARSER
*Parser
,
413 IN UINT32 ParserItems
417 This is a helper macro to pass parameters to the Parser functions.
419 @param [in] Parser The name of the ACPI_PARSER array describing the
422 #define PARSER_PARAMS(Parser) Parser, sizeof (Parser) / sizeof (Parser[0])
425 This is a helper macro for describing the ACPI header fields.
427 @param [out] Info Pointer to retrieve the ACPI table header information.
429 #define PARSE_ACPI_HEADER(Info) \
430 { L"Signature", 4, 0, NULL, Dump4Chars, \
431 (VOID**)&(Info)->Signature , NULL, NULL }, \
432 { L"Length", 4, 4, L"%d", NULL, \
433 (VOID**)&(Info)->Length, NULL, NULL }, \
434 { L"Revision", 1, 8, L"%d", NULL, \
435 (VOID**)&(Info)->Revision, NULL, NULL }, \
436 { L"Checksum", 1, 9, L"0x%X", NULL, \
437 (VOID**)&(Info)->Checksum, NULL, NULL }, \
438 { L"Oem ID", 6, 10, NULL, Dump6Chars, \
439 (VOID**)&(Info)->OemId, NULL, NULL }, \
440 { L"Oem Table ID", 8, 16, NULL, Dump8Chars, \
441 (VOID**)&(Info)->OemTableId, NULL, NULL }, \
442 { L"Oem Revision", 4, 24, L"0x%X", NULL, \
443 (VOID**)&(Info)->OemRevision, NULL, NULL }, \
444 { L"Creator ID", 4, 28, NULL, Dump4Chars, \
445 (VOID**)&(Info)->CreatorId, NULL, NULL }, \
446 { L"Creator Revision", 4, 32, L"0x%X", NULL, \
447 (VOID**)&(Info)->CreatorRevision, NULL, NULL }
450 This function indents and traces the GAS structure as described by the GasParser.
452 @param [in] Ptr Pointer to the start of the buffer.
453 @param [in] Indent Number of spaces to indent the output.
454 @param [in] Length Length of the GAS structure buffer.
456 @retval Number of bytes parsed.
467 This function traces the GAS structure as described by the GasParser.
469 @param [in] Format Optional format string for tracing the data.
470 @param [in] Ptr Pointer to the start of the buffer.
475 IN CONST CHAR16
*Format OPTIONAL
,
480 This function traces the ACPI header as described by the AcpiHeaderParser.
482 @param [in] Ptr Pointer to the start of the buffer.
484 @retval Number of bytes parsed.
493 This function parses the ACPI header as described by the AcpiHeaderParser.
495 This function optionally returns the Signature, Length and revision of the
498 @param [in] Ptr Pointer to the start of the buffer.
499 @param [out] Signature Gets location of the ACPI table signature.
500 @param [out] Length Gets location of the length of the ACPI table.
501 @param [out] Revision Gets location of the revision of the ACPI table.
503 @retval Number of bytes parsed.
509 OUT CONST UINT32
**Signature
,
510 OUT CONST UINT32
**Length
,
511 OUT CONST UINT8
**Revision
515 This function parses the ACPI AEST table.
516 When trace is enabled this function parses the AEST table and
517 traces the ACPI table fields.
519 This function also performs validation of the ACPI table fields.
521 @param [in] Trace If TRUE, trace the ACPI fields.
522 @param [in] Ptr Pointer to the start of the buffer.
523 @param [in] AcpiTableLength Length of the ACPI table.
524 @param [in] AcpiTableRevision Revision of the ACPI table.
531 IN UINT32 AcpiTableLength
,
532 IN UINT8 AcpiTableRevision
536 This function parses the ACPI APMT table.
537 When trace is enabled this function parses the APMT table and
538 traces the ACPI table fields.
540 This function also performs validation of the ACPI table fields.
542 @param [in] Trace If TRUE, trace the ACPI fields.
543 @param [in] Ptr Pointer to the start of the buffer.
544 @param [in] AcpiTableLength Length of the ACPI table.
545 @param [in] AcpiTableRevision Revision of the ACPI table.
552 IN UINT32 AcpiTableLength
,
553 IN UINT8 AcpiTableRevision
557 This function parses the ACPI BGRT table.
558 When trace is enabled this function parses the BGRT table and
559 traces the ACPI table fields.
561 This function also performs validation of the ACPI table fields.
563 @param [in] Trace If TRUE, trace the ACPI fields.
564 @param [in] Ptr Pointer to the start of the buffer.
565 @param [in] AcpiTableLength Length of the ACPI table.
566 @param [in] AcpiTableRevision Revision of the ACPI table.
573 IN UINT32 AcpiTableLength
,
574 IN UINT8 AcpiTableRevision
578 This function parses the ACPI DBG2 table.
579 When trace is enabled this function parses the DBG2 table and
580 traces the ACPI table fields.
582 This function also performs validation of the ACPI table fields.
584 @param [in] Trace If TRUE, trace the ACPI fields.
585 @param [in] Ptr Pointer to the start of the buffer.
586 @param [in] AcpiTableLength Length of the ACPI table.
587 @param [in] AcpiTableRevision Revision of the ACPI table.
594 IN UINT32 AcpiTableLength
,
595 IN UINT8 AcpiTableRevision
599 This function parses the ACPI DSDT table.
600 When trace is enabled this function parses the DSDT table and
601 traces the ACPI table fields.
602 For the DSDT table only the ACPI header fields are parsed and
605 @param [in] Trace If TRUE, trace the ACPI fields.
606 @param [in] Ptr Pointer to the start of the buffer.
607 @param [in] AcpiTableLength Length of the ACPI table.
608 @param [in] AcpiTableRevision Revision of the ACPI table.
615 IN UINT32 AcpiTableLength
,
616 IN UINT8 AcpiTableRevision
620 This function parses the ACPI ERST table.
621 When trace is enabled this function parses the ERST table and
622 traces the ACPI table fields.
624 This function also performs validation of the ACPI table fields.
626 @param [in] Trace If TRUE, trace the ACPI fields.
627 @param [in] Ptr Pointer to the start of the buffer.
628 @param [in] AcpiTableLength Length of the ACPI table.
629 @param [in] AcpiTableRevision Revision of the ACPI table.
636 IN UINT32 AcpiTableLength
,
637 IN UINT8 AcpiTableRevision
641 This function parses the ACPI FACS table.
642 When trace is enabled this function parses the FACS table and
643 traces the ACPI table fields.
645 This function also performs validation of the ACPI table fields.
647 @param [in] Trace If TRUE, trace the ACPI fields.
648 @param [in] Ptr Pointer to the start of the buffer.
649 @param [in] AcpiTableLength Length of the ACPI table.
650 @param [in] AcpiTableRevision Revision of the ACPI table.
657 IN UINT32 AcpiTableLength
,
658 IN UINT8 AcpiTableRevision
662 This function parses the ACPI FADT table.
663 This function parses the FADT table and optionally traces the ACPI
666 This function also performs validation of the ACPI table fields.
668 @param [in] Trace If TRUE, trace the ACPI fields.
669 @param [in] Ptr Pointer to the start of the buffer.
670 @param [in] AcpiTableLength Length of the ACPI table.
671 @param [in] AcpiTableRevision Revision of the ACPI table.
678 IN UINT32 AcpiTableLength
,
679 IN UINT8 AcpiTableRevision
683 This function parses the ACPI GTDT table.
684 When trace is enabled this function parses the GTDT table and
685 traces the ACPI table fields.
687 This function also parses the following platform timer structures:
691 This function also performs validation of the ACPI table fields.
693 @param [in] Trace If TRUE, trace the ACPI fields.
694 @param [in] Ptr Pointer to the start of the buffer.
695 @param [in] AcpiTableLength Length of the ACPI table.
696 @param [in] AcpiTableRevision Revision of the ACPI table.
703 IN UINT32 AcpiTableLength
,
704 IN UINT8 AcpiTableRevision
708 This function parses the ACPI HMAT table.
709 When trace is enabled this function parses the HMAT table and
710 traces the ACPI table fields.
712 This function parses the following HMAT structures:
713 - Memory Proximity Domain Attributes Structure (Type 0)
714 - System Locality Latency and Bandwidth Info Structure (Type 1)
715 - Memory Side Cache Info structure (Type 2)
717 This function also performs validation of the ACPI table fields.
719 @param [in] Trace If TRUE, trace the ACPI fields.
720 @param [in] Ptr Pointer to the start of the buffer.
721 @param [in] AcpiTableLength Length of the ACPI table.
722 @param [in] AcpiTableRevision Revision of the ACPI table.
729 IN UINT32 AcpiTableLength
,
730 IN UINT8 AcpiTableRevision
734 This function parses the ACPI IORT table.
735 When trace is enabled this function parses the IORT table and
736 traces the ACPI fields.
738 This function also parses the following nodes:
746 This function also performs validation of the ACPI table fields.
748 @param [in] Trace If TRUE, trace the ACPI fields.
749 @param [in] Ptr Pointer to the start of the buffer.
750 @param [in] AcpiTableLength Length of the ACPI table.
751 @param [in] AcpiTableRevision Revision of the ACPI table.
758 IN UINT32 AcpiTableLength
,
759 IN UINT8 AcpiTableRevision
763 This function parses the ACPI MADT table.
764 When trace is enabled this function parses the MADT table and
765 traces the ACPI table fields.
767 This function currently parses the following Interrupt Controller
775 This function also performs validation of the ACPI table fields.
777 @param [in] Trace If TRUE, trace the ACPI fields.
778 @param [in] Ptr Pointer to the start of the buffer.
779 @param [in] AcpiTableLength Length of the ACPI table.
780 @param [in] AcpiTableRevision Revision of the ACPI table.
787 IN UINT32 AcpiTableLength
,
788 IN UINT8 AcpiTableRevision
792 This function parses the ACPI MCFG table.
793 When trace is enabled this function parses the MCFG table and
794 traces the ACPI table fields.
796 This function also performs validation of the ACPI table fields.
798 @param [in] Trace If TRUE, trace the ACPI fields.
799 @param [in] Ptr Pointer to the start of the buffer.
800 @param [in] AcpiTableLength Length of the ACPI table.
801 @param [in] AcpiTableRevision Revision of the ACPI table.
808 IN UINT32 AcpiTableLength
,
809 IN UINT8 AcpiTableRevision
813 This function parses the ACPI PCCT table including its sub-structures
815 When trace is enabled this function parses the PCCT table and
816 traces the ACPI table fields.
818 This function also performs validation of the ACPI table fields.
820 @param [in] Trace If TRUE, trace the ACPI fields.
821 @param [in] Ptr Pointer to the start of the buffer.
822 @param [in] AcpiTableLength Length of the ACPI table.
823 @param [in] AcpiTableRevision Revision of the ACPI table.
830 IN UINT32 AcpiTableLength
,
831 IN UINT8 AcpiTableRevision
835 This function parses the ACPI PPTT table.
836 When trace is enabled this function parses the PPTT table and
837 traces the ACPI table fields.
839 This function also performs validation of the ACPI table fields.
841 @param [in] Trace If TRUE, trace the ACPI fields.
842 @param [in] Ptr Pointer to the start of the buffer.
843 @param [in] AcpiTableLength Length of the ACPI table.
844 @param [in] AcpiTableRevision Revision of the ACPI table.
851 IN UINT32 AcpiTableLength
,
852 IN UINT8 AcpiTableRevision
856 This function parses the ACPI RSDP table.
858 This function invokes the parser for the XSDT table.
859 * Note - This function does not support parsing of RSDT table.
861 This function also performs a RAW dump of the ACPI table and
862 validates the checksum.
864 @param [in] Trace If TRUE, trace the ACPI fields.
865 @param [in] Ptr Pointer to the start of the buffer.
866 @param [in] AcpiTableLength Length of the ACPI table.
867 @param [in] AcpiTableRevision Revision of the ACPI table.
874 IN UINT32 AcpiTableLength
,
875 IN UINT8 AcpiTableRevision
879 This function parses the ACPI SLIT table.
880 When trace is enabled this function parses the SLIT table and
881 traces the ACPI table fields.
883 This function also validates System Localities for the following:
884 - Diagonal elements have a normalized value of 10
885 - Relative distance from System Locality at i*N+j is same as
888 @param [in] Trace If TRUE, trace the ACPI fields.
889 @param [in] Ptr Pointer to the start of the buffer.
890 @param [in] AcpiTableLength Length of the ACPI table.
891 @param [in] AcpiTableRevision Revision of the ACPI table.
898 IN UINT32 AcpiTableLength
,
899 IN UINT8 AcpiTableRevision
903 This function parses the ACPI SPCR table.
904 When trace is enabled this function parses the SPCR table and
905 traces the ACPI table fields.
907 This function also performs validations of the ACPI table fields.
909 @param [in] Trace If TRUE, trace the ACPI fields.
910 @param [in] Ptr Pointer to the start of the buffer.
911 @param [in] AcpiTableLength Length of the ACPI table.
912 @param [in] AcpiTableRevision Revision of the ACPI table.
919 IN UINT32 AcpiTableLength
,
920 IN UINT8 AcpiTableRevision
924 This function parses the ACPI SRAT table.
925 When trace is enabled this function parses the SRAT table and
926 traces the ACPI table fields.
928 This function parses the following Resource Allocation Structures:
929 - Processor Local APIC/SAPIC Affinity Structure
930 - Memory Affinity Structure
931 - Processor Local x2APIC Affinity Structure
932 - GICC Affinity Structure
934 This function also performs validation of the ACPI table fields.
936 @param [in] Trace If TRUE, trace the ACPI fields.
937 @param [in] Ptr Pointer to the start of the buffer.
938 @param [in] AcpiTableLength Length of the ACPI table.
939 @param [in] AcpiTableRevision Revision of the ACPI table.
946 IN UINT32 AcpiTableLength
,
947 IN UINT8 AcpiTableRevision
951 This function parses the ACPI SSDT table.
952 When trace is enabled this function parses the SSDT table and
953 traces the ACPI table fields.
954 For the SSDT table only the ACPI header fields are
957 @param [in] Trace If TRUE, trace the ACPI fields.
958 @param [in] Ptr Pointer to the start of the buffer.
959 @param [in] AcpiTableLength Length of the ACPI table.
960 @param [in] AcpiTableRevision Revision of the ACPI table.
967 IN UINT32 AcpiTableLength
,
968 IN UINT8 AcpiTableRevision
972 This function parses the ACPI XSDT table
973 and optionally traces the ACPI table fields.
975 This function also performs validation of the XSDT table.
977 @param [in] Trace If TRUE, trace the ACPI fields.
978 @param [in] Ptr Pointer to the start of the buffer.
979 @param [in] AcpiTableLength Length of the ACPI table.
980 @param [in] AcpiTableRevision Revision of the ACPI table.
987 IN UINT32 AcpiTableLength
,
988 IN UINT8 AcpiTableRevision
991 #endif // ACPIPARSER_H_