/** @file | |
Copyright (c) 2017 - 2019, ARM Limited. All rights reserved. | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
@par Glossary: | |
- Std - Standard | |
- ACPI - Advanced Configuration and Power Interface | |
- SMBIOS - System Management BIOS | |
- DT - Device Tree | |
**/ | |
#ifndef DYNAMIC_TABLE_FACTORY_H_ | |
#define DYNAMIC_TABLE_FACTORY_H_ | |
#pragma pack(1) | |
/** A structure that holds the list of registered ACPI and | |
SMBIOS table generators. | |
*/ | |
typedef struct DynamicTableFactoryInfo { | |
/// An array for holding the list of Standard ACPI Table Generators. | |
CONST ACPI_TABLE_GENERATOR * | |
StdAcpiTableGeneratorList[EStdAcpiTableIdMax]; | |
/// An array for holding the list of Custom ACPI Table Generators. | |
CONST ACPI_TABLE_GENERATOR * | |
CustomAcpiTableGeneratorList[FixedPcdGet16 ( | |
PcdMaxCustomACPIGenerators | |
)]; | |
/// An array for holding the list of Standard SMBIOS Table Generators. | |
CONST SMBIOS_TABLE_GENERATOR * | |
StdSmbiosTableGeneratorList[EStdSmbiosTableIdMax]; | |
/// An array for holding the list of Custom SMBIOS Table Generators. | |
CONST SMBIOS_TABLE_GENERATOR * | |
CustomSmbiosTableGeneratorList[FixedPcdGet16 ( | |
PcdMaxCustomSMBIOSGenerators | |
)]; | |
/// An array for holding the list of Standard DT Table Generators. | |
CONST DT_TABLE_GENERATOR * | |
StdDtTableGeneratorList[EStdDtTableIdMax]; | |
/// An array for holding the list of Custom DT Table Generators. | |
CONST DT_TABLE_GENERATOR * | |
CustomDtTableGeneratorList[FixedPcdGet16 ( | |
PcdMaxCustomDTGenerators | |
)]; | |
} EDKII_DYNAMIC_TABLE_FACTORY_INFO; | |
/** Return a pointer to the ACPI table generator. | |
@param [in] This Pointer to the Dynamic Table Factory Protocol. | |
@param [in] GeneratorId The ACPI table generator ID for the | |
requested generator. | |
@param [out] Generator Pointer to the requested ACPI table | |
generator. | |
@retval EFI_SUCCESS Success. | |
@retval EFI_INVALID_PARAMETER A parameter is invalid. | |
@retval EFI_NOT_FOUND The requested generator is not found | |
in the list of registered generators. | |
**/ | |
EFI_STATUS | |
EFIAPI | |
GetAcpiTableGenerator ( | |
IN CONST EDKII_DYNAMIC_TABLE_FACTORY_PROTOCOL *CONST This, | |
IN CONST ACPI_TABLE_GENERATOR_ID GeneratorId, | |
OUT CONST ACPI_TABLE_GENERATOR **CONST Generator | |
); | |
/** Return a pointer to the SMBIOS table generator. | |
@param [in] This Pointer to the Dynamic Table Factory Protocol. | |
@param [in] GeneratorId The SMBIOS table generator ID for the | |
requested generator. | |
@param [out] Generator Pointer to the requested SMBIOS table | |
generator. | |
@retval EFI_SUCCESS Success. | |
@retval EFI_INVALID_PARAMETER A parameter is invalid. | |
@retval EFI_NOT_FOUND The requested generator is not found | |
in the list of registered generators. | |
**/ | |
EFI_STATUS | |
EFIAPI | |
GetSmbiosTableGenerator ( | |
IN CONST EDKII_DYNAMIC_TABLE_FACTORY_PROTOCOL *CONST This, | |
IN CONST SMBIOS_TABLE_GENERATOR_ID GeneratorId, | |
OUT CONST SMBIOS_TABLE_GENERATOR **CONST Generator | |
); | |
/** Return a pointer to the DT table generator. | |
@param [in] This Pointer to the Dynamic Table Factory Protocol. | |
@param [in] GeneratorId The DT table generator ID for the | |
requested generator. | |
@param [out] Generator Pointer to the requested DT table | |
generator. | |
@retval EFI_SUCCESS Success. | |
@retval EFI_INVALID_PARAMETER A parameter is invalid. | |
@retval EFI_NOT_FOUND The requested generator is not found | |
in the list of registered generators. | |
**/ | |
EFI_STATUS | |
EFIAPI | |
GetDtTableGenerator ( | |
IN CONST EDKII_DYNAMIC_TABLE_FACTORY_PROTOCOL *CONST This, | |
IN CONST DT_TABLE_GENERATOR_ID GeneratorId, | |
OUT CONST DT_TABLE_GENERATOR **CONST Generator | |
); | |
#pragma pack() | |
#endif // DYNAMIC_TABLE_FACTORY_H_ |