TianoCore EDK2 master
Loading...
Searching...
No Matches
DeviceTreeTableGenerator.h File Reference
#include <TableGenerator.h>

Go to the source code of this file.

Data Structures

struct  DtTableGenerator
 

Macros

#define IS_GENERATOR_TYPE_DT(TableGeneratorId)    (GET_TABLE_TYPE(TableGeneratorId) == ETableGeneratorTypeDt)
 
#define IS_VALID_STD_DT_GENERATOR_ID(TableGeneratorId)
 
#define CREATE_STD_DT_TABLE_GEN_ID(TableId)
 

Typedefs

typedef TABLE_GENERATOR_ID DT_TABLE_GENERATOR_ID
 
typedef enum StdDtTableId ESTD_DT_TABLE_ID
 
typedef struct ConfigurationManagerProtocol EDKII_CONFIGURATION_MANAGER_PROTOCOL
 
typedef struct CmAStdObjDtTableInfo CM_STD_OBJ_DT_TABLE_INFO
 
typedef struct DtTableGenerator DT_TABLE_GENERATOR
 
typedef EFI_STATUS(* DT_TABLE_GENERATOR_BUILD_TABLE) (IN CONST DT_TABLE_GENERATOR *Generator, IN CONST CM_STD_OBJ_DT_TABLE_INFO *CONST DtTableInfo, IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, OUT VOID **Table)
 
typedef EFI_STATUS(* DT_TABLE_GENERATOR_FREE_TABLE) (IN CONST DT_TABLE_GENERATOR *Generator, IN CONST CM_STD_OBJ_DT_TABLE_INFO *CONST DtTableInfo, IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, IN VOID **Table)
 

Enumerations

enum  StdDtTableId { EStdDtTableIdReserved = 0x0000 , EStdDtTableIdRaw , EStdDtTableIdMax }
 

Functions

EFI_STATUS EFIAPI RegisterDtTableGenerator (IN CONST DT_TABLE_GENERATOR *CONST Generator)
 
EFI_STATUS EFIAPI DeregisterDtTableGenerator (IN CONST DT_TABLE_GENERATOR *CONST Generator)
 

Detailed Description

Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Glossary:
  • Cm or CM - Configuration Manager
  • Obj or OBJ - Object
  • Std or STD - Standard

Definition in file DeviceTreeTableGenerator.h.

Macro Definition Documentation

◆ CREATE_STD_DT_TABLE_GEN_ID

#define CREATE_STD_DT_TABLE_GEN_ID (   TableId)
Value:
TableId \
)
@ ETableGeneratorNameSpaceStd
Standard Namespace.
#define CREATE_TABLE_GEN_ID(TableType, TableNameSpaceId, TableId)
@ ETableGeneratorTypeDt
Device Tree Table Generator Type.

This macro creates a standard DT Table Generator ID.

Parameters
[in]TableIdThe table generator ID.
Returns
a standard DT table generator ID.

Definition at line 65 of file DeviceTreeTableGenerator.h.

◆ IS_GENERATOR_TYPE_DT

#define IS_GENERATOR_TYPE_DT (   TableGeneratorId)     (GET_TABLE_TYPE(TableGeneratorId) == ETableGeneratorTypeDt)

This macro checks if the Table Generator ID is for an DT Table Generator.

Parameters
[in]TableGeneratorIdThe table generator ID.
Returns
TRUE if the table generator ID is for an DT Table Generator.

Definition at line 40 of file DeviceTreeTableGenerator.h.

◆ IS_VALID_STD_DT_GENERATOR_ID

#define IS_VALID_STD_DT_GENERATOR_ID (   TableGeneratorId)
Value:
( \
IS_GENERATOR_NAMESPACE_STD(TableGeneratorId) && \
IS_GENERATOR_TYPE_DT(TableGeneratorId) && \
((GET_TABLE_ID(GeneratorId) >= EStdDtTableIdRaw) && \
(GET_TABLE_ID(GeneratorId) < EStdDtTableIdMax)) \
)
@ EStdDtTableIdRaw
RAW Generator.
#define GET_TABLE_ID(TableGeneratorId)

This macro checks if the Table Generator ID is for a standard DT Table Generator.

Parameters
[in]TableGeneratorIdThe table generator ID.
Returns
TRUE if the table generator ID is for a standard DT Table Generator.

Definition at line 51 of file DeviceTreeTableGenerator.h.

Typedef Documentation

◆ CM_STD_OBJ_DT_TABLE_INFO

typedef struct CmAStdObjDtTableInfo CM_STD_OBJ_DT_TABLE_INFO

Definition at line 75 of file DeviceTreeTableGenerator.h.

◆ DT_TABLE_GENERATOR

The DT_TABLE_GENERATOR structure provides an interface that the Table Manager can use to invoke the functions to build DT tables.

Definition at line 76 of file DeviceTreeTableGenerator.h.

◆ DT_TABLE_GENERATOR_BUILD_TABLE

typedef EFI_STATUS(* DT_TABLE_GENERATOR_BUILD_TABLE) (IN CONST DT_TABLE_GENERATOR *Generator, IN CONST CM_STD_OBJ_DT_TABLE_INFO *CONST DtTableInfo, IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, OUT VOID **Table)

This function pointer describes the interface to DT table build functions provided by the DT table generator and called by the Table Manager to build an DT table.

Parameters
[in]GeneratorPointer to the DT table generator.
[in]DtTableInfoPointer to the DT table information.
[in]CfgMgrProtocolPointer to the Configuration Manager Protocol interface.
[out]TablePointer to the generated DT table.
Returns
EFI_SUCCESS If the table is generated successfully or other failure codes as returned by the generator.

Definition at line 91 of file DeviceTreeTableGenerator.h.

◆ DT_TABLE_GENERATOR_FREE_TABLE

typedef EFI_STATUS(* DT_TABLE_GENERATOR_FREE_TABLE) (IN CONST DT_TABLE_GENERATOR *Generator, IN CONST CM_STD_OBJ_DT_TABLE_INFO *CONST DtTableInfo, IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL *CONST CfgMgrProtocol, IN VOID **Table)

This function pointer describes the interface to used by the Table Manager to give the generator an opportunity to free any resources allocated for building the DT table.

Parameters
[in]GeneratorPointer to the DT table generator.
[in]DtTableInfoPointer to the DT table information.
[in]CfgMgrProtocolPointer to the Configuration Manager Protocol interface.
[in]TablePointer to the generated DT table.
Returns
EFI_SUCCESS If freed successfully or other failure codes as returned by the generator.

Definition at line 111 of file DeviceTreeTableGenerator.h.

◆ DT_TABLE_GENERATOR_ID

The DT_TABLE_GENERATOR_ID type describes Device Tree table generator ID.

Definition at line 22 of file DeviceTreeTableGenerator.h.

◆ EDKII_CONFIGURATION_MANAGER_PROTOCOL

Forward declarations.

Definition at line 74 of file DeviceTreeTableGenerator.h.

◆ ESTD_DT_TABLE_ID

The ESTD_DT_TABLE_ID enum describes the DT table IDs reserved for the standard generators.

Enumeration Type Documentation

◆ StdDtTableId

The ESTD_DT_TABLE_ID enum describes the DT table IDs reserved for the standard generators.

Enumerator
EStdDtTableIdReserved 

Reserved.

EStdDtTableIdRaw 

RAW Generator.

Definition at line 27 of file DeviceTreeTableGenerator.h.

Function Documentation

◆ DeregisterDtTableGenerator()

EFI_STATUS EFIAPI DeregisterDtTableGenerator ( IN CONST DT_TABLE_GENERATOR *CONST  Generator)

Deregister DT generator.

This function is called by the DT table generator to deregister itself from the DT table factory.

Parameters
[in]GeneratorPointer to the DT table generator.
Return values
EFI_SUCCESSSuccess.
EFI_INVALID_PARAMETERThe generator is invalid.
EFI_NOT_FOUNDThe requested generator is not found in the list of registered generators.

Definition at line 173 of file DeviceTreeTableFactory.c.

◆ RegisterDtTableGenerator()

EFI_STATUS EFIAPI RegisterDtTableGenerator ( IN CONST DT_TABLE_GENERATOR *CONST  Generator)

Register DT table factory generator.

The DT table factory maintains a list of the Standard and OEM DT table generators.

Parameters
[in]GeneratorPointer to the DT table generator.
Return values
EFI_SUCCESSThe Generator was registered successfully.
EFI_INVALID_PARAMETERThe Generator ID is invalid or the Generator pointer is NULL.
EFI_ALREADY_STARTEDThe Generator for the Table ID is already registered.

Definition at line 109 of file DeviceTreeTableFactory.c.