mirror of https://github.com/acidanthera/audk.git
126 lines
4.8 KiB
C
126 lines
4.8 KiB
C
/** @file
|
|
|
|
Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.
|
|
|
|
This program and the accompanying materials
|
|
are licensed and made available under the terms and conditions of the BSD License
|
|
which accompanies this distribution. The full text of the license may be found at
|
|
http://opensource.org/licenses/bsd-license.php
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
@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_
|