Adds WSMT parse to the UefiShellAcpiViewCommandLib library. Cc: Zhichao Gao <zhichao.gao@intel.com> Cc: Pierre Gondois <pierre.gondois@arm.com> Signed-off-by: Abdul Lateef Attar <AbdulLateef.Attar@amd.com> Reviewed-by: Pierre Gondois <pierre.gondois@arm.com> Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
		
			
				
	
	
		
			1026 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			1026 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  Header file for ACPI parser
 | 
						|
 | 
						|
  Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
 | 
						|
  Copyright (c) 2016 - 2020, Arm Limited. All rights reserved.
 | 
						|
  Copyright (c) 2022, AMD Incorporated. All rights reserved.
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef ACPIPARSER_H_
 | 
						|
#define ACPIPARSER_H_
 | 
						|
 | 
						|
#define OUTPUT_FIELD_COLUMN_WIDTH  36
 | 
						|
 | 
						|
/// The RSDP table signature is "RSD PTR " (8 bytes)
 | 
						|
/// However The signature for ACPI tables is 4 bytes.
 | 
						|
/// To work around this oddity define a signature type
 | 
						|
/// that allows us to process the log options.
 | 
						|
#define RSDP_TABLE_INFO  SIGNATURE_32('R', 'S', 'D', 'P')
 | 
						|
 | 
						|
/**
 | 
						|
  This function increments the ACPI table error counter.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
IncrementErrorCount (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function increments the ACPI table warning counter.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
IncrementWarningCount (
 | 
						|
  VOID
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function verifies the ACPI table checksum.
 | 
						|
 | 
						|
  This function verifies the checksum for the ACPI table and optionally
 | 
						|
  prints the status.
 | 
						|
 | 
						|
  @param [in] Log     If TRUE log the status of the checksum.
 | 
						|
  @param [in] Ptr     Pointer to the start of the table buffer.
 | 
						|
  @param [in] Length  The length of the buffer.
 | 
						|
 | 
						|
  @retval TRUE         The checksum is OK.
 | 
						|
  @retval FALSE        The checksum failed.
 | 
						|
**/
 | 
						|
BOOLEAN
 | 
						|
EFIAPI
 | 
						|
VerifyChecksum (
 | 
						|
  IN BOOLEAN  Log,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   Length
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function performs a raw data dump of the ACPI table.
 | 
						|
 | 
						|
  @param [in] Ptr     Pointer to the start of the table buffer.
 | 
						|
  @param [in] Length  The length of the buffer.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
DumpRaw (
 | 
						|
  IN UINT8   *Ptr,
 | 
						|
  IN UINT32  Length
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function traces 1 byte of datum as specified in the format string.
 | 
						|
 | 
						|
  @param [in] Format  The format string for tracing the data.
 | 
						|
  @param [in] Ptr     Pointer to the start of the buffer.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
DumpUint8 (
 | 
						|
  IN CONST CHAR16  *Format,
 | 
						|
  IN UINT8         *Ptr
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function traces 2 bytes of data as specified in the format string.
 | 
						|
 | 
						|
  @param [in] Format  The format string for tracing the data.
 | 
						|
  @param [in] Ptr     Pointer to the start of the buffer.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
DumpUint16 (
 | 
						|
  IN CONST CHAR16  *Format,
 | 
						|
  IN UINT8         *Ptr
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function traces 4 bytes of data as specified in the format string.
 | 
						|
 | 
						|
  @param [in] Format  The format string for tracing the data.
 | 
						|
  @param [in] Ptr     Pointer to the start of the buffer.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
DumpUint32 (
 | 
						|
  IN CONST CHAR16  *Format,
 | 
						|
  IN UINT8         *Ptr
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function traces 8 bytes of data as specified by the format string.
 | 
						|
 | 
						|
  @param [in] Format  The format string for tracing the data.
 | 
						|
  @param [in] Ptr     Pointer to the start of the buffer.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
DumpUint64 (
 | 
						|
  IN CONST CHAR16  *Format,
 | 
						|
  IN UINT8         *Ptr
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function traces 3 characters which can be optionally
 | 
						|
  formated using the format string if specified.
 | 
						|
 | 
						|
  If no format string is specified the Format must be NULL.
 | 
						|
 | 
						|
  @param [in] Format  Optional format string for tracing the data.
 | 
						|
  @param [in] Ptr     Pointer to the start of the buffer.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
Dump3Chars (
 | 
						|
  IN CONST CHAR16  *Format OPTIONAL,
 | 
						|
  IN UINT8         *Ptr
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function traces 4 characters which can be optionally
 | 
						|
  formated using the format string if specified.
 | 
						|
 | 
						|
  If no format string is specified the Format must be NULL.
 | 
						|
 | 
						|
  @param [in] Format  Optional format string for tracing the data.
 | 
						|
  @param [in] Ptr     Pointer to the start of the buffer.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
Dump4Chars (
 | 
						|
  IN CONST CHAR16  *Format OPTIONAL,
 | 
						|
  IN UINT8         *Ptr
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function traces 6 characters which can be optionally
 | 
						|
  formated using the format string if specified.
 | 
						|
 | 
						|
  If no format string is specified the Format must be NULL.
 | 
						|
 | 
						|
  @param [in] Format  Optional format string for tracing the data.
 | 
						|
  @param [in] Ptr     Pointer to the start of the buffer.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
Dump6Chars (
 | 
						|
  IN CONST CHAR16  *Format OPTIONAL,
 | 
						|
  IN UINT8         *Ptr
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function traces 8 characters which can be optionally
 | 
						|
  formated using the format string if specified.
 | 
						|
 | 
						|
  If no format string is specified the Format must be NULL.
 | 
						|
 | 
						|
  @param [in] Format  Optional format string for tracing the data.
 | 
						|
  @param [in] Ptr     Pointer to the start of the buffer.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
Dump8Chars (
 | 
						|
  IN CONST CHAR16  *Format OPTIONAL,
 | 
						|
  IN UINT8         *Ptr
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function traces 12 characters which can be optionally
 | 
						|
  formated using the format string if specified.
 | 
						|
 | 
						|
  If no format string is specified the Format must be NULL.
 | 
						|
 | 
						|
  @param [in] Format  Optional format string for tracing the data.
 | 
						|
  @param [in] Ptr     Pointer to the start of the buffer.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
Dump12Chars (
 | 
						|
  IN CONST CHAR16  *Format OPTIONAL,
 | 
						|
  IN       UINT8   *Ptr
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function indents and prints the ACPI table Field Name.
 | 
						|
 | 
						|
  @param [in] Indent      Number of spaces to add to the global table
 | 
						|
                          indent. The global table indent is 0 by default;
 | 
						|
                          however this value is updated on entry to the
 | 
						|
                          ParseAcpi() by adding the indent value provided to
 | 
						|
                          ParseAcpi() and restored back on exit. Therefore
 | 
						|
                          the total indent in the output is dependent on from
 | 
						|
                          where this function is called.
 | 
						|
  @param [in] FieldName   Pointer to the Field Name.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
PrintFieldName (
 | 
						|
  IN UINT32        Indent,
 | 
						|
  IN CONST CHAR16  *FieldName
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function pointer is the template for customizing the trace output
 | 
						|
 | 
						|
  @param [in] Format  Format string for tracing the data as specified by
 | 
						|
                      the 'Format' member of ACPI_PARSER.
 | 
						|
  @param [in] Ptr     Pointer to the start of the buffer.
 | 
						|
**/
 | 
						|
typedef VOID (EFIAPI *FNPTR_PRINT_FORMATTER)(CONST CHAR16 *Format, UINT8 *Ptr);
 | 
						|
 | 
						|
/**
 | 
						|
  This function pointer is the template for validating an ACPI table field.
 | 
						|
 | 
						|
  @param [in] Ptr     Pointer to the start of the field data.
 | 
						|
  @param [in] Context Pointer to context specific information as specified by
 | 
						|
                      the 'Context' member of the ACPI_PARSER.
 | 
						|
                      e.g. this could be a pointer to the ACPI table header.
 | 
						|
**/
 | 
						|
typedef VOID (EFIAPI *FNPTR_FIELD_VALIDATOR)(UINT8 *Ptr, VOID *Context);
 | 
						|
 | 
						|
/**
 | 
						|
  The ACPI_PARSER structure describes the fields of an ACPI table and
 | 
						|
  provides means for the parser to interpret and trace appropriately.
 | 
						|
 | 
						|
  The first three members are populated based on information present in
 | 
						|
  in the ACPI table specifications. The remaining members describe how
 | 
						|
  the parser should report the field information, validate the field data
 | 
						|
  and/or update an external pointer to the field (ItemPtr).
 | 
						|
 | 
						|
  ParseAcpi() uses the format string specified by 'Format' for tracing
 | 
						|
  the field data. If the field is more complex and requires additional
 | 
						|
  processing for formatting and representation a print formatter function
 | 
						|
  can be specified in 'PrintFormatter'.
 | 
						|
 | 
						|
  ParseAcpiBitFields() uses AcpiParser structure to parse the bit fields.
 | 
						|
  It considers Length as a number of bits that need to be parsed.
 | 
						|
  Also, the Offset field will be considered as starting offset of the bitfield.
 | 
						|
 | 
						|
  The PrintFormatter function may choose to use the format string
 | 
						|
  specified by 'Format' or use its own internal format string.
 | 
						|
 | 
						|
  The 'Format' and 'PrintFormatter' members allow flexibility for
 | 
						|
  representing the field data.
 | 
						|
**/
 | 
						|
typedef struct AcpiParser {
 | 
						|
  /// String describing the ACPI table field
 | 
						|
  /// (Field column from ACPI table spec)
 | 
						|
  CONST CHAR16             *NameStr;
 | 
						|
 | 
						|
  /// The length of the field.
 | 
						|
  /// (Byte Length column from ACPI table spec)
 | 
						|
  /// Length(in bits) of the bitfield if used with ParseAcpiBitFields().
 | 
						|
  UINT32                   Length;
 | 
						|
 | 
						|
  /// The offset of the field from the start of the table.
 | 
						|
  /// (Byte Offset column from ACPI table spec)
 | 
						|
  /// The Bit offset of the field if used with ParseAcpiBitFields().
 | 
						|
  UINT32                   Offset;
 | 
						|
 | 
						|
  /// Optional Print() style format string for tracing the data. If not
 | 
						|
  /// used this must be set to NULL.
 | 
						|
  CONST CHAR16             *Format;
 | 
						|
 | 
						|
  /// Optional pointer to a print formatter function which
 | 
						|
  /// is typically used to trace complex field information.
 | 
						|
  /// If not used this must be set to NULL.
 | 
						|
  /// The Format string is passed to the PrintFormatter function
 | 
						|
  /// but may be ignored by the implementation code.
 | 
						|
  FNPTR_PRINT_FORMATTER    PrintFormatter;
 | 
						|
 | 
						|
  /// Optional pointer which may be set to request the parser to update
 | 
						|
  /// a pointer to the field data. This value is set after the FieldValidator
 | 
						|
  /// has been called and therefore should not be used by the FieldValidator.
 | 
						|
  /// If unused this must be set to NULL.
 | 
						|
  /// ItemPtr is not supported with ParseAcpiBitFields().
 | 
						|
  VOID                     **ItemPtr;
 | 
						|
 | 
						|
  /// Optional pointer to a field validator function.
 | 
						|
  /// The function should directly report any appropriate error or warning
 | 
						|
  /// and invoke the appropriate counter update function.
 | 
						|
  /// If not used this parameter must be set to NULL.
 | 
						|
  FNPTR_FIELD_VALIDATOR    FieldValidator;
 | 
						|
 | 
						|
  /// Optional pointer to context specific information,
 | 
						|
  /// which the Field Validator function can use to determine
 | 
						|
  /// additional information about the ACPI table and make
 | 
						|
  /// decisions about the field being validated.
 | 
						|
  /// e.g. this could be a pointer to the ACPI table header
 | 
						|
  VOID                     *Context;
 | 
						|
} ACPI_PARSER;
 | 
						|
 | 
						|
/**
 | 
						|
  A structure used to store the pointers to the members of the
 | 
						|
  ACPI description header structure that was parsed.
 | 
						|
**/
 | 
						|
typedef struct AcpiDescriptionHeaderInfo {
 | 
						|
  /// ACPI table signature
 | 
						|
  UINT32    *Signature;
 | 
						|
  /// Length of the ACPI table
 | 
						|
  UINT32    *Length;
 | 
						|
  /// Revision
 | 
						|
  UINT8     *Revision;
 | 
						|
  /// Checksum
 | 
						|
  UINT8     *Checksum;
 | 
						|
  /// OEM Id - length is 6 bytes
 | 
						|
  UINT8     *OemId;
 | 
						|
  /// OEM table Id
 | 
						|
  UINT64    *OemTableId;
 | 
						|
  /// OEM revision Id
 | 
						|
  UINT32    *OemRevision;
 | 
						|
  /// Creator Id
 | 
						|
  UINT32    *CreatorId;
 | 
						|
  /// Creator revision
 | 
						|
  UINT32    *CreatorRevision;
 | 
						|
} ACPI_DESCRIPTION_HEADER_INFO;
 | 
						|
 | 
						|
/**
 | 
						|
  This function is used to parse an ACPI table buffer.
 | 
						|
 | 
						|
  The ACPI table buffer is parsed using the ACPI table parser information
 | 
						|
  specified by a pointer to an array of ACPI_PARSER elements. This parser
 | 
						|
  function iterates through each item on the ACPI_PARSER array and logs the
 | 
						|
  ACPI table fields.
 | 
						|
 | 
						|
  This function can optionally be used to parse ACPI tables and fetch specific
 | 
						|
  field values. The ItemPtr member of the ACPI_PARSER structure (where used)
 | 
						|
  is updated by this parser function to point to the selected field data
 | 
						|
  (e.g. useful for variable length nested fields).
 | 
						|
 | 
						|
  @param [in] Trace        Trace the ACPI fields TRUE else only parse the
 | 
						|
                           table.
 | 
						|
  @param [in] Indent       Number of spaces to indent the output.
 | 
						|
  @param [in] AsciiName    Optional pointer to an ASCII string that describes
 | 
						|
                           the table being parsed.
 | 
						|
  @param [in] Ptr          Pointer to the start of the buffer.
 | 
						|
  @param [in] Length       Length of the buffer pointed by Ptr.
 | 
						|
  @param [in] Parser       Pointer to an array of ACPI_PARSER structure that
 | 
						|
                           describes the table being parsed.
 | 
						|
  @param [in] ParserItems  Number of items in the ACPI_PARSER array.
 | 
						|
 | 
						|
  @retval Number of bytes parsed.
 | 
						|
**/
 | 
						|
UINT32
 | 
						|
EFIAPI
 | 
						|
ParseAcpi (
 | 
						|
  IN BOOLEAN            Trace,
 | 
						|
  IN UINT32             Indent,
 | 
						|
  IN CONST CHAR8        *AsciiName OPTIONAL,
 | 
						|
  IN UINT8              *Ptr,
 | 
						|
  IN UINT32             Length,
 | 
						|
  IN CONST ACPI_PARSER  *Parser,
 | 
						|
  IN UINT32             ParserItems
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function is used to parse an ACPI table bitfield buffer.
 | 
						|
 | 
						|
  The ACPI table buffer is parsed using the ACPI table parser information
 | 
						|
  specified by a pointer to an array of ACPI_PARSER elements. This parser
 | 
						|
  function iterates through each item on the ACPI_PARSER array and logs the ACPI table bitfields.
 | 
						|
 | 
						|
  This function can optionally be used to parse ACPI tables and fetch specific
 | 
						|
  field values. The ItemPtr member of the ACPI_PARSER structure (where used)
 | 
						|
  is updated by this parser function to point to the selected field data
 | 
						|
  (e.g. useful for variable length nested fields).
 | 
						|
 | 
						|
  ItemPtr member of ACPI_PARSER is not supported with this function.
 | 
						|
 | 
						|
  @param [in] Trace        Trace the ACPI fields TRUE else only parse the
 | 
						|
                           table.
 | 
						|
  @param [in] Indent       Number of spaces to indent the output.
 | 
						|
  @param [in] AsciiName    Optional pointer to an ASCII string that describes
 | 
						|
                           the table being parsed.
 | 
						|
  @param [in] Ptr          Pointer to the start of the buffer.
 | 
						|
  @param [in] Length       Length of the buffer pointed by Ptr.
 | 
						|
  @param [in] Parser       Pointer to an array of ACPI_PARSER structure that
 | 
						|
                           describes the table being parsed.
 | 
						|
  @param [in] ParserItems  Number of items in the ACPI_PARSER array.
 | 
						|
 | 
						|
  @retval Number of bits parsed.
 | 
						|
**/
 | 
						|
UINT32
 | 
						|
EFIAPI
 | 
						|
ParseAcpiBitFields (
 | 
						|
  IN BOOLEAN            Trace,
 | 
						|
  IN UINT32             Indent,
 | 
						|
  IN CONST CHAR8        *AsciiName OPTIONAL,
 | 
						|
  IN UINT8              *Ptr,
 | 
						|
  IN UINT32             Length,
 | 
						|
  IN CONST ACPI_PARSER  *Parser,
 | 
						|
  IN UINT32             ParserItems
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
   This is a helper macro to pass parameters to the Parser functions.
 | 
						|
 | 
						|
  @param [in] Parser The name of the ACPI_PARSER array describing the
 | 
						|
              ACPI table fields.
 | 
						|
**/
 | 
						|
#define PARSER_PARAMS(Parser)  Parser, sizeof (Parser) / sizeof (Parser[0])
 | 
						|
 | 
						|
/**
 | 
						|
  This is a helper macro for describing the ACPI header fields.
 | 
						|
 | 
						|
  @param [out] Info  Pointer to retrieve the ACPI table header information.
 | 
						|
**/
 | 
						|
#define PARSE_ACPI_HEADER(Info)                   \
 | 
						|
  { L"Signature", 4, 0, NULL, Dump4Chars,         \
 | 
						|
    (VOID**)&(Info)->Signature , NULL, NULL },    \
 | 
						|
  { L"Length", 4, 4, L"%d", NULL,                 \
 | 
						|
    (VOID**)&(Info)->Length, NULL, NULL },        \
 | 
						|
  { L"Revision", 1, 8, L"%d", NULL,               \
 | 
						|
    (VOID**)&(Info)->Revision, NULL, NULL },      \
 | 
						|
  { L"Checksum", 1, 9, L"0x%X", NULL,             \
 | 
						|
    (VOID**)&(Info)->Checksum, NULL, NULL },      \
 | 
						|
  { L"Oem ID", 6, 10, NULL, Dump6Chars,           \
 | 
						|
    (VOID**)&(Info)->OemId, NULL, NULL },         \
 | 
						|
  { L"Oem Table ID", 8, 16, NULL, Dump8Chars,     \
 | 
						|
    (VOID**)&(Info)->OemTableId, NULL, NULL },    \
 | 
						|
  { L"Oem Revision", 4, 24, L"0x%X", NULL,        \
 | 
						|
    (VOID**)&(Info)->OemRevision, NULL, NULL },   \
 | 
						|
  { L"Creator ID", 4, 28, NULL, Dump4Chars,       \
 | 
						|
    (VOID**)&(Info)->CreatorId, NULL, NULL },     \
 | 
						|
  { L"Creator Revision", 4, 32, L"0x%X", NULL,    \
 | 
						|
    (VOID**)&(Info)->CreatorRevision, NULL, NULL }
 | 
						|
 | 
						|
/**
 | 
						|
  This function indents and traces the GAS structure as described by the GasParser.
 | 
						|
 | 
						|
  @param [in] Ptr     Pointer to the start of the buffer.
 | 
						|
  @param [in] Indent  Number of spaces to indent the output.
 | 
						|
  @param [in] Length  Length of the GAS structure buffer.
 | 
						|
 | 
						|
  @retval Number of bytes parsed.
 | 
						|
**/
 | 
						|
UINT32
 | 
						|
EFIAPI
 | 
						|
DumpGasStruct (
 | 
						|
  IN UINT8   *Ptr,
 | 
						|
  IN UINT32  Indent,
 | 
						|
  IN UINT32  Length
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function traces the GAS structure as described by the GasParser.
 | 
						|
 | 
						|
  @param [in] Format  Optional format string for tracing the data.
 | 
						|
  @param [in] Ptr     Pointer to the start of the buffer.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
DumpGas (
 | 
						|
  IN CONST CHAR16  *Format OPTIONAL,
 | 
						|
  IN UINT8         *Ptr
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function traces the ACPI header as described by the AcpiHeaderParser.
 | 
						|
 | 
						|
  @param [in] Ptr          Pointer to the start of the buffer.
 | 
						|
 | 
						|
  @retval Number of bytes parsed.
 | 
						|
**/
 | 
						|
UINT32
 | 
						|
EFIAPI
 | 
						|
DumpAcpiHeader (
 | 
						|
  IN UINT8  *Ptr
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI header as described by the AcpiHeaderParser.
 | 
						|
 | 
						|
  This function optionally returns the Signature, Length and revision of the
 | 
						|
  ACPI table.
 | 
						|
 | 
						|
  @param [in]  Ptr        Pointer to the start of the buffer.
 | 
						|
  @param [out] Signature  Gets location of the ACPI table signature.
 | 
						|
  @param [out] Length     Gets location of the length of the ACPI table.
 | 
						|
  @param [out] Revision   Gets location of the revision of the ACPI table.
 | 
						|
 | 
						|
  @retval Number of bytes parsed.
 | 
						|
**/
 | 
						|
UINT32
 | 
						|
EFIAPI
 | 
						|
ParseAcpiHeader (
 | 
						|
  IN  UINT8         *Ptr,
 | 
						|
  OUT CONST UINT32  **Signature,
 | 
						|
  OUT CONST UINT32  **Length,
 | 
						|
  OUT CONST UINT8   **Revision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI AEST table.
 | 
						|
  When trace is enabled this function parses the AEST table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
 | 
						|
  This function also performs validation of the ACPI table fields.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiAest (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI APMT table.
 | 
						|
  When trace is enabled this function parses the APMT table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
 | 
						|
  This function also performs validation of the ACPI table fields.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiApmt (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI BGRT table.
 | 
						|
  When trace is enabled this function parses the BGRT table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
 | 
						|
  This function also performs validation of the ACPI table fields.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiBgrt (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI DBG2 table.
 | 
						|
  When trace is enabled this function parses the DBG2 table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
 | 
						|
  This function also performs validation of the ACPI table fields.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiDbg2 (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI DSDT table.
 | 
						|
  When trace is enabled this function parses the DSDT table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
  For the DSDT table only the ACPI header fields are parsed and
 | 
						|
  traced.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiDsdt (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI ERST table.
 | 
						|
  When trace is enabled this function parses the ERST table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
 | 
						|
  This function also performs validation of the ACPI table fields.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiErst (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI FACS table.
 | 
						|
  When trace is enabled this function parses the FACS table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
 | 
						|
  This function also performs validation of the ACPI table fields.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiFacs (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI FADT table.
 | 
						|
  This function parses the FADT table and optionally traces the ACPI
 | 
						|
  table fields.
 | 
						|
 | 
						|
  This function also performs validation of the ACPI table fields.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiFadt (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI GTDT table.
 | 
						|
  When trace is enabled this function parses the GTDT table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
 | 
						|
  This function also parses the following platform timer structures:
 | 
						|
    - GT Block timer
 | 
						|
    - Watchdog timer
 | 
						|
 | 
						|
  This function also performs validation of the ACPI table fields.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiGtdt (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI HMAT table.
 | 
						|
  When trace is enabled this function parses the HMAT table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
 | 
						|
  This function parses the following HMAT structures:
 | 
						|
    - Memory Proximity Domain Attributes Structure (Type 0)
 | 
						|
    - System Locality Latency and Bandwidth Info Structure (Type 1)
 | 
						|
    - Memory Side Cache Info structure (Type 2)
 | 
						|
 | 
						|
  This function also performs validation of the ACPI table fields.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiHmat (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI HPET table.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiHpet (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI IORT table.
 | 
						|
  When trace is enabled this function parses the IORT table and
 | 
						|
  traces the ACPI fields.
 | 
						|
 | 
						|
  This function also parses the following nodes:
 | 
						|
    - ITS Group
 | 
						|
    - Named Component
 | 
						|
    - Root Complex
 | 
						|
    - SMMUv1/2
 | 
						|
    - SMMUv3
 | 
						|
    - PMCG
 | 
						|
 | 
						|
  This function also performs validation of the ACPI table fields.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiIort (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI MADT table.
 | 
						|
  When trace is enabled this function parses the MADT table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
 | 
						|
  This function currently parses the following Interrupt Controller
 | 
						|
  Structures:
 | 
						|
    - GICC
 | 
						|
    - GICD
 | 
						|
    - GIC MSI Frame
 | 
						|
    - GICR
 | 
						|
    - GIC ITS
 | 
						|
 | 
						|
  This function also performs validation of the ACPI table fields.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiMadt (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI MCFG table.
 | 
						|
  When trace is enabled this function parses the MCFG table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
 | 
						|
  This function also performs validation of the ACPI table fields.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiMcfg (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI PCCT table including its sub-structures
 | 
						|
  of type 0 through 4.
 | 
						|
  When trace is enabled this function parses the PCCT table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
 | 
						|
  This function also performs validation of the ACPI table fields.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiPcct (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI PPTT table.
 | 
						|
  When trace is enabled this function parses the PPTT table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
 | 
						|
  This function also performs validation of the ACPI table fields.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiPptt (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI RSDP table.
 | 
						|
 | 
						|
  This function invokes the parser for the XSDT table.
 | 
						|
  * Note - This function does not support parsing of RSDT table.
 | 
						|
 | 
						|
  This function also performs a RAW dump of the ACPI table and
 | 
						|
  validates the checksum.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiRsdp (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI SLIT table.
 | 
						|
  When trace is enabled this function parses the SLIT table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
 | 
						|
  This function also validates System Localities for the following:
 | 
						|
    - Diagonal elements have a normalized value of 10
 | 
						|
    - Relative distance from System Locality at i*N+j is same as
 | 
						|
      j*N+i
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiSlit (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI SPCR table.
 | 
						|
  When trace is enabled this function parses the SPCR table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
 | 
						|
  This function also performs validations of the ACPI table fields.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiSpcr (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI SRAT table.
 | 
						|
  When trace is enabled this function parses the SRAT table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
 | 
						|
  This function parses the following Resource Allocation Structures:
 | 
						|
    - Processor Local APIC/SAPIC Affinity Structure
 | 
						|
    - Memory Affinity Structure
 | 
						|
    - Processor Local x2APIC Affinity Structure
 | 
						|
    - GICC Affinity Structure
 | 
						|
 | 
						|
  This function also performs validation of the ACPI table fields.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiSrat (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI SSDT table.
 | 
						|
  When trace is enabled this function parses the SSDT table and
 | 
						|
  traces the ACPI table fields.
 | 
						|
  For the SSDT table only the ACPI header fields are
 | 
						|
  parsed and traced.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiSsdt (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI WSMT table.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiWsmt (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
/**
 | 
						|
  This function parses the ACPI XSDT table
 | 
						|
  and optionally traces the ACPI table fields.
 | 
						|
 | 
						|
  This function also performs validation of the XSDT table.
 | 
						|
 | 
						|
  @param [in] Trace              If TRUE, trace the ACPI fields.
 | 
						|
  @param [in] Ptr                Pointer to the start of the buffer.
 | 
						|
  @param [in] AcpiTableLength    Length of the ACPI table.
 | 
						|
  @param [in] AcpiTableRevision  Revision of the ACPI table.
 | 
						|
**/
 | 
						|
VOID
 | 
						|
EFIAPI
 | 
						|
ParseAcpiXsdt (
 | 
						|
  IN BOOLEAN  Trace,
 | 
						|
  IN UINT8    *Ptr,
 | 
						|
  IN UINT32   AcpiTableLength,
 | 
						|
  IN UINT8    AcpiTableRevision
 | 
						|
  );
 | 
						|
 | 
						|
#endif // ACPIPARSER_H_
 |