DynamicTablesPkg[all]
1.0
|
Data Structures | |
struct | AcpiTableGenerator |
Macros | |
#define | IS_GENERATOR_TYPE_ACPI(TableGeneratorId) (GET_TABLE_TYPE (TableGeneratorId) == ETableGeneratorTypeAcpi) |
#define | IS_VALID_STD_ACPI_GENERATOR_ID(TableGeneratorId) |
#define | CREATE_STD_ACPI_TABLE_GEN_ID(TableId) |
#define | CREATE_OEM_ACPI_TABLE_GEN_ID(TableId) |
#define | TABLE_GENERATOR_CREATOR_ID_ARM SIGNATURE_32('A', 'R', 'M', 'H') |
#define | ACPI_HEADER(Signature, Type, Revision) |
#define | DUMP_ACPI_TABLE_HEADER(AcpiHeader) |
Enumerations | |
enum | StdAcpiTableId { EStdAcpiTableIdReserved = 0x0000, EStdAcpiTableIdRaw, EStdAcpiTableIdDsdt = EStdAcpiTableIdRaw, EStdAcpiTableIdSsdt = EStdAcpiTableIdRaw, EStdAcpiTableIdFadt, EStdAcpiTableIdMadt, EStdAcpiTableIdGtdt, EStdAcpiTableIdDbg2, EStdAcpiTableIdSpcr, EStdAcpiTableIdMcfg, EStdAcpiTableIdIort, EStdAcpiTableIdPptt, EStdAcpiTableIdSrat, EStdAcpiTableIdSsdtSerialPort, EStdAcpiTableIdSsdtCmn600, EStdAcpiTableIdSsdtCpuTopology, EStdAcpiTableIdMax } |
Functions | |
EFI_STATUS EFIAPI | RegisterAcpiTableGenerator (IN CONST ACPI_TABLE_GENERATOR *CONST Generator) |
EFI_STATUS EFIAPI | DeregisterAcpiTableGenerator (IN CONST ACPI_TABLE_GENERATOR *CONST Generator) |
Copyright (c) 2017 - 2021, Arm Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
#define ACPI_HEADER | ( | Signature, | |
Type, | |||
Revision | |||
) |
A macro to initialise the common header part of EFI ACPI tables as defined by the EFI_ACPI_DESCRIPTION_HEADER structure.
[in] | Signature | The ACPI table signature. |
[in] | Type | The ACPI table structure. |
[in] | Revision | The ACPI table revision. |
#define CREATE_OEM_ACPI_TABLE_GEN_ID | ( | TableId | ) |
This macro creates an OEM ACPI Table Generator ID.
[in] | TableId | The table generator ID. |
#define CREATE_STD_ACPI_TABLE_GEN_ID | ( | TableId | ) |
This macro creates a standard ACPI Table Generator ID.
[in] | TableId | The table generator ID. |
#define DUMP_ACPI_TABLE_HEADER | ( | AcpiHeader | ) |
A macro to dump the common header part of EFI ACPI tables as defined by the EFI_ACPI_DESCRIPTION_HEADER structure.
[in] | AcpiHeader | The pointer to the ACPI table header. |
#define IS_GENERATOR_TYPE_ACPI | ( | TableGeneratorId | ) | (GET_TABLE_TYPE (TableGeneratorId) == ETableGeneratorTypeAcpi) |
This macro checks if the Table Generator ID is for an ACPI Table Generator.
[in] | TableGeneratorId | The table generator ID. |
#define IS_VALID_STD_ACPI_GENERATOR_ID | ( | TableGeneratorId | ) |
This macro checks if the Table Generator ID is for a standard ACPI Table Generator.
[in] | TableGeneratorId | The table generator ID. |
#define TABLE_GENERATOR_CREATOR_ID_ARM SIGNATURE_32('A', 'R', 'M', 'H') |
The Creator ID for the ACPI tables generated using the standard ACPI table generators.
typedef struct AcpiTableGenerator ACPI_TABLE_GENERATOR |
The ACPI_TABLE_GENERATOR structure provides an interface that the Table Manager can use to invoke the functions to build ACPI tables.
Note: Although the Generator is required to implement at least one pair of interfaces (BuildAcpiTable & FreeTableResources or BuildAcpiTableEx & FreeTableResourcesEx) for generating the ACPI table(s), if both pair of interfaces are implemented the extended version will take precedence.
typedef EFI_STATUS(* ACPI_TABLE_GENERATOR_BUILD_TABLE)(IN CONST ACPI_TABLE_GENERATOR *This, IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo, IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, OUT EFI_ACPI_DESCRIPTION_HEADER **Table) |
This function pointer describes the interface to ACPI table build functions provided by the ACPI table generator and called by the Table Manager to build an ACPI table.
[in] | This | Pointer to the ACPI table generator. |
[in] | AcpiTableInfo | Pointer to the ACPI table information. |
[in] | CfgMgrProtocol | Pointer to the Configuration Manager Protocol interface. |
[out] | Table | Pointer to the generated ACPI table. |
typedef EFI_STATUS(* ACPI_TABLE_GENERATOR_BUILD_TABLEEX)(IN CONST ACPI_TABLE_GENERATOR *This, IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo, IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, OUT EFI_ACPI_DESCRIPTION_HEADER ***Table, OUT UINTN *CONST TableCount) |
This function pointer describes an extended interface to build ACPI Tables. The ACPI table generator can generate multiple ACPI Tables and return a pointer to the list of ACPI tables. The FreeTableResourcesEx() must be called to free any resources that may have been allocated using this interface.
[in] | This | Pointer to the ACPI table generator. |
[in] | AcpiTableInfo | Pointer to the ACPI table information. |
[in] | CfgMgrProtocol | Pointer to the Configuration Manager Protocol interface. |
[out] | Table | Pointer to a list of generated ACPI table(s). |
[out] | TableCount | Number of generated ACPI table(s). |
typedef EFI_STATUS(* ACPI_TABLE_GENERATOR_FREE_TABLE)(IN CONST ACPI_TABLE_GENERATOR *CONST This, IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo, IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, IN OUT EFI_ACPI_DESCRIPTION_HEADER **CONST Table) |
This function pointer describes the interface used by the Table Manager to give the generator an opportunity to free any resources allocated for building the ACPI table.
[in] | This | Pointer to the ACPI table generator. |
[in] | AcpiTableInfo | Pointer to the ACPI Table Info. |
[in] | CfgMgrProtocol | Pointer to the Configuration Manager Protocol Interface. |
[in,out] | Table | Pointer to the ACPI Table. |
typedef EFI_STATUS(* ACPI_TABLE_GENERATOR_FREE_TABLEEX)(IN CONST ACPI_TABLE_GENERATOR *CONST This, IN CONST CM_STD_OBJ_ACPI_TABLE_INFO *CONST AcpiTableInfo, IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, IN OUT EFI_ACPI_DESCRIPTION_HEADER ***CONST Table, IN CONST UINTN TableCount) |
This function pointer describes an extended interface used by the Table Manager to give the generator an opportunity to free any resources allocated for building the ACPI table. This interface must be used in conjunction with the BuildAcpiTableEx interface.
[in] | This | Pointer to the ACPI table generator. |
[in] | AcpiTableInfo | Pointer to the ACPI Table Info. |
[in] | CfgMgrProtocol | Pointer to the Configuration Manager Protocol Interface. |
[in,out] | Table | Pointer to the list of ACPI Table(s). |
[in] | TableCount | Number of ACPI table(s). |
The Dynamic Tables Framework provisions two classes of ACPI table generators.
The Dynamic Tables Framework implements the following ACPI table generators:
typedef struct CmAStdObjAcpiTableInfo CM_STD_OBJ_ACPI_TABLE_INFO |
typedef struct ConfigurationManagerProtocol EDKII_CONFIGURATION_MANAGER_PROTOCOL |
Forward declarations.
typedef enum StdAcpiTableId ESTD_ACPI_TABLE_ID |
The ESTD_ACPI_TABLE_ID enum describes the ACPI table IDs reserved for the standard generators.
enum StdAcpiTableId |
The ESTD_ACPI_TABLE_ID enum describes the ACPI table IDs reserved for the standard generators.
EFI_STATUS EFIAPI DeregisterAcpiTableGenerator | ( | IN CONST ACPI_TABLE_GENERATOR *CONST | Generator | ) |
Deregister ACPI generator.
This function is called by the ACPI table generator to deregister itself from the ACPI table factory.
[in] | Generator | Pointer to the ACPI table generator. |
EFI_SUCCESS | Success. |
EFI_INVALID_PARAMETER | The generator is invalid. |
EFI_NOT_FOUND | The requested generator is not found in the list of registered generators. |
EFI_STATUS EFIAPI RegisterAcpiTableGenerator | ( | IN CONST ACPI_TABLE_GENERATOR *CONST | Generator | ) |
Register ACPI table factory generator.
The ACPI table factory maintains a list of the Standard and OEM ACPI table generators.
[in] | Generator | Pointer to the ACPI table generator. |
EFI_SUCCESS | The Generator was registered successfully. |
EFI_INVALID_PARAMETER | The Generator ID is invalid or the Generator pointer is NULL. |
EFI_ALREADY_STARTED | The Generator for the Table ID is already registered. |