3 Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.
5 SPDX-License-Identifier: BSD-2-Clause-Patent
9 - ACPI - Advanced Configuration and Power Interface
10 - SMBIOS - System Management BIOS
14 #ifndef DYNAMIC_TABLE_FACTORY_H_
15 #define DYNAMIC_TABLE_FACTORY_H_
19 /** A structure that holds the list of registered ACPI and
20 SMBIOS table generators.
22 typedef struct DynamicTableFactoryInfo
{
23 /// An array for holding the list of Standard ACPI Table Generators.
24 CONST ACPI_TABLE_GENERATOR
*
25 StdAcpiTableGeneratorList
[EStdAcpiTableIdMax
];
27 /// An array for holding the list of Custom ACPI Table Generators.
28 CONST ACPI_TABLE_GENERATOR
*
29 CustomAcpiTableGeneratorList
[FixedPcdGet16 (
30 PcdMaxCustomACPIGenerators
33 /// An array for holding the list of Standard SMBIOS Table Generators.
34 CONST SMBIOS_TABLE_GENERATOR
*
35 StdSmbiosTableGeneratorList
[EStdSmbiosTableIdMax
];
37 /// An array for holding the list of Custom SMBIOS Table Generators.
38 CONST SMBIOS_TABLE_GENERATOR
*
39 CustomSmbiosTableGeneratorList
[FixedPcdGet16 (
40 PcdMaxCustomSMBIOSGenerators
43 /// An array for holding the list of Standard DT Table Generators.
44 CONST DT_TABLE_GENERATOR
*
45 StdDtTableGeneratorList
[EStdDtTableIdMax
];
47 /// An array for holding the list of Custom DT Table Generators.
48 CONST DT_TABLE_GENERATOR
*
49 CustomDtTableGeneratorList
[FixedPcdGet16 (
50 PcdMaxCustomDTGenerators
52 } EDKII_DYNAMIC_TABLE_FACTORY_INFO
;
54 /** Return a pointer to the ACPI table generator.
56 @param [in] This Pointer to the Dynamic Table Factory Protocol.
57 @param [in] GeneratorId The ACPI table generator ID for the
59 @param [out] Generator Pointer to the requested ACPI table
62 @retval EFI_SUCCESS Success.
63 @retval EFI_INVALID_PARAMETER A parameter is invalid.
64 @retval EFI_NOT_FOUND The requested generator is not found
65 in the list of registered generators.
69 GetAcpiTableGenerator (
70 IN CONST EDKII_DYNAMIC_TABLE_FACTORY_PROTOCOL
* CONST This
,
71 IN CONST ACPI_TABLE_GENERATOR_ID GeneratorId
,
72 OUT CONST ACPI_TABLE_GENERATOR
** CONST Generator
75 /** Return a pointer to the SMBIOS table generator.
77 @param [in] This Pointer to the Dynamic Table Factory Protocol.
78 @param [in] GeneratorId The SMBIOS table generator ID for the
80 @param [out] Generator Pointer to the requested SMBIOS table
83 @retval EFI_SUCCESS Success.
84 @retval EFI_INVALID_PARAMETER A parameter is invalid.
85 @retval EFI_NOT_FOUND The requested generator is not found
86 in the list of registered generators.
90 GetSmbiosTableGenerator (
91 IN CONST EDKII_DYNAMIC_TABLE_FACTORY_PROTOCOL
* CONST This
,
92 IN CONST SMBIOS_TABLE_GENERATOR_ID GeneratorId
,
93 OUT CONST SMBIOS_TABLE_GENERATOR
** CONST Generator
96 /** Return a pointer to the DT table generator.
98 @param [in] This Pointer to the Dynamic Table Factory Protocol.
99 @param [in] GeneratorId The DT table generator ID for the
101 @param [out] Generator Pointer to the requested DT table
104 @retval EFI_SUCCESS Success.
105 @retval EFI_INVALID_PARAMETER A parameter is invalid.
106 @retval EFI_NOT_FOUND The requested generator is not found
107 in the list of registered generators.
111 GetDtTableGenerator (
112 IN CONST EDKII_DYNAMIC_TABLE_FACTORY_PROTOCOL
* CONST This
,
113 IN CONST DT_TABLE_GENERATOR_ID GeneratorId
,
114 OUT CONST DT_TABLE_GENERATOR
** CONST Generator
119 #endif // DYNAMIC_TABLE_FACTORY_H_