TianoCore EDK2 master
|
Go to the source code of this file.
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 SIGNATURE_32('D', 'Y', 'N', 'T') |
#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 , EStdAcpiTableIdSsdtPciExpress , EStdAcpiTableIdPcct , EStdAcpiTableIdTpm2 , EStdAcpiTableIdWsmt , EStdAcpiTableIdHpet , EStdAcpiTableIdSsdtHpet , EStdAcpiTableIdSpmi , 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 - 2022, Arm Limited. All rights reserved.
Copyright (c) 2024, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
Copyright (c) 2024 Advanced Micro Devices, Inc. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file AcpiTableGenerator.h.
#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. |
Definition at line 186 of file AcpiTableGenerator.h.
#define CREATE_OEM_ACPI_TABLE_GEN_ID | ( | TableId | ) |
This macro creates an OEM ACPI Table Generator ID.
[in] | TableId | The table generator ID. |
Definition at line 162 of file AcpiTableGenerator.h.
#define CREATE_STD_ACPI_TABLE_GEN_ID | ( | TableId | ) |
This macro creates a standard ACPI Table Generator ID.
[in] | TableId | The table generator ID. |
Definition at line 149 of file AcpiTableGenerator.h.
#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. |
Definition at line 203 of file AcpiTableGenerator.h.
#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. |
Definition at line 124 of file AcpiTableGenerator.h.
#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. |
Definition at line 135 of file AcpiTableGenerator.h.
#define TABLE_GENERATOR_CREATOR_ID SIGNATURE_32('D', 'Y', 'N', 'T') |
The generic creator ID for the ACPI tables generated using the standard ACPI table generators.
Definition at line 172 of file AcpiTableGenerator.h.
#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 for ARM.
Definition at line 177 of file AcpiTableGenerator.h.
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.
Definition at line 219 of file AcpiTableGenerator.h.
typedef EFI_STATUS(EFIAPI * 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. |
Definition at line 234 of file AcpiTableGenerator.h.
typedef EFI_STATUS(EFIAPI * 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). |
Definition at line 277 of file AcpiTableGenerator.h.
typedef EFI_STATUS(EFIAPI * 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. |
Definition at line 254 of file AcpiTableGenerator.h.
typedef EFI_STATUS(EFIAPI * 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). |
Definition at line 300 of file AcpiTableGenerator.h.
The Dynamic Tables Framework provisions two classes of ACPI table generators.
The Dynamic Tables Framework implements the following ACPI table generators:
Definition at line 85 of file AcpiTableGenerator.h.
typedef struct CmAStdObjAcpiTableInfo CM_STD_OBJ_ACPI_TABLE_INFO |
Definition at line 218 of file AcpiTableGenerator.h.
typedef struct ConfigurationManagerProtocol EDKII_CONFIGURATION_MANAGER_PROTOCOL |
Forward declarations.
The EDKII_CONFIGURATION_MANAGER_PROTOCOL structure describes the Configuration Manager Protocol interface.
Definition at line 217 of file AcpiTableGenerator.h.
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.
Enumerator | |
---|---|
EStdAcpiTableIdReserved | Reserved. |
EStdAcpiTableIdRaw | RAW Generator. |
EStdAcpiTableIdDsdt | DSDT Generator. |
EStdAcpiTableIdSsdt | SSDT Generator. |
EStdAcpiTableIdFadt | FADT Generator. |
EStdAcpiTableIdMadt | MADT Generator. |
EStdAcpiTableIdGtdt | GTDT Generator. |
EStdAcpiTableIdDbg2 | DBG2 Generator. |
EStdAcpiTableIdSpcr | SPCR Generator. |
EStdAcpiTableIdMcfg | MCFG Generator. |
EStdAcpiTableIdIort | IORT Generator. |
EStdAcpiTableIdPptt | PPTT Generator. |
EStdAcpiTableIdSrat | SRAT Generator. |
EStdAcpiTableIdSsdtSerialPort | SSDT Serial-Port Generator. |
EStdAcpiTableIdSsdtCmn600 | SSDT Cmn-600 Generator. |
EStdAcpiTableIdSsdtCpuTopology | SSDT Cpu Topology. |
EStdAcpiTableIdSsdtPciExpress | SSDT Pci Express Generator. |
EStdAcpiTableIdPcct | PCCT Generator. |
EStdAcpiTableIdTpm2 | TPM2 Generator. |
EStdAcpiTableIdWsmt | WSMT Generator. |
EStdAcpiTableIdHpet | HPET Generator. |
EStdAcpiTableIdSsdtHpet | SSDT HPET Generator. |
EStdAcpiTableIdSpmi | SPMI Generator. |
Definition at line 90 of file AcpiTableGenerator.h.
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. |
Definition at line 174 of file AcpiTableFactory.c.
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. |
Definition at line 110 of file AcpiTableFactory.c.