123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- /** @file
- Header file for ACPI table parser
- Copyright (c) 2016 - 2020, Arm Limited. All rights reserved.
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- #ifndef ACPITABLEPARSER_H_
- #define ACPITABLEPARSER_H_
- /**
- The maximum number of ACPI table parsers.
- */
- #define MAX_ACPI_TABLE_PARSERS 32
- /** An invalid/NULL signature value.
- */
- #define ACPI_PARSER_SIGNATURE_NULL 0
- /**
- A function that parses the ACPI 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.
- **/
- typedef
- VOID
- (EFIAPI *PARSE_ACPI_TABLE_PROC)(
- IN BOOLEAN Trace,
- IN UINT8 *Ptr,
- IN UINT32 AcpiTableLength,
- IN UINT8 AcpiTableRevision
- );
- /**
- The ACPI table parser information
- **/
- typedef struct AcpiTableParser {
- /// ACPI table signature
- UINT32 Signature;
- /// The ACPI table parser function.
- PARSE_ACPI_TABLE_PROC Parser;
- } ACPI_TABLE_PARSER;
- /**
- Register the ACPI table Parser
- This function registers the ACPI table parser.
- @param [in] Signature The ACPI table signature.
- @param [in] ParserProc The ACPI table parser.
- @retval EFI_SUCCESS The parser is registered.
- @retval EFI_INVALID_PARAMETER A parameter is invalid.
- @retval EFI_ALREADY_STARTED The parser for the Table
- was already registered.
- @retval EFI_OUT_OF_RESOURCES No space to register the
- parser.
- **/
- EFI_STATUS
- EFIAPI
- RegisterParser (
- IN UINT32 Signature,
- IN PARSE_ACPI_TABLE_PROC ParserProc
- );
- /**
- Deregister the ACPI table Parser
- This function deregisters the ACPI table parser.
- @param [in] Signature The ACPI table signature.
- @retval EFI_SUCCESS The parser was deregistered.
- @retval EFI_INVALID_PARAMETER A parameter is invalid.
- @retval EFI_NOT_FOUND A registered parser was not found.
- **/
- EFI_STATUS
- EFIAPI
- DeregisterParser (
- IN UINT32 Signature
- );
- /**
- This function processes the ACPI tables.
- This function calls ProcessTableReportOptions() to list the ACPI
- tables, perform binary dump of the tables and determine if the
- ACPI fields should be traced.
- This function also invokes the parser for the ACPI tables.
- This function also performs a RAW dump of the ACPI table including
- the unknown/unparsed ACPI tables and validates the checksum.
- @param [in] Ptr Pointer to the start of the ACPI
- table data buffer.
- **/
- VOID
- EFIAPI
- ProcessAcpiTable (
- IN UINT8 *Ptr
- );
- /**
- Get the ACPI table Parser
- This function returns the ACPI table parser proc from the list of
- registered parsers.
- @param [in] Signature The ACPI table signature.
- @param [out] ParserProc Pointer to a ACPI table parser proc.
- @retval EFI_SUCCESS The parser was returned successfully.
- @retval EFI_INVALID_PARAMETER A parameter is invalid.
- @retval EFI_NOT_FOUND A registered parser was not found.
- **/
- EFI_STATUS
- EFIAPI
- GetParser (
- IN UINT32 Signature,
- OUT PARSE_ACPI_TABLE_PROC *ParserProc
- );
- #endif // ACPITABLEPARSER_H_
|