3 Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 - ACPI - Advanced Configuration and Power Interface
16 - SMBIOS - System Management BIOS
20 #ifndef DYNAMIC_TABLE_FACTORY_H_
21 #define DYNAMIC_TABLE_FACTORY_H_
25 /** A structure that holds the list of registered ACPI and
26 SMBIOS table generators.
28 typedef struct DynamicTableFactoryInfo
{
29 /// An array for holding the list of Standard ACPI Table Generators.
30 CONST ACPI_TABLE_GENERATOR
*
31 StdAcpiTableGeneratorList
[EStdAcpiTableIdMax
];
33 /// An array for holding the list of Custom ACPI Table Generators.
34 CONST ACPI_TABLE_GENERATOR
*
35 CustomAcpiTableGeneratorList
[FixedPcdGet16 (
36 PcdMaxCustomACPIGenerators
39 /// An array for holding the list of Standard SMBIOS Table Generators.
40 CONST SMBIOS_TABLE_GENERATOR
*
41 StdSmbiosTableGeneratorList
[EStdSmbiosTableIdMax
];
43 /// An array for holding the list of Custom SMBIOS Table Generators.
44 CONST SMBIOS_TABLE_GENERATOR
*
45 CustomSmbiosTableGeneratorList
[FixedPcdGet16 (
46 PcdMaxCustomSMBIOSGenerators
49 /// An array for holding the list of Standard DT Table Generators.
50 CONST DT_TABLE_GENERATOR
*
51 StdDtTableGeneratorList
[EStdDtTableIdMax
];
53 /// An array for holding the list of Custom DT Table Generators.
54 CONST DT_TABLE_GENERATOR
*
55 CustomDtTableGeneratorList
[FixedPcdGet16 (
56 PcdMaxCustomDTGenerators
58 } EDKII_DYNAMIC_TABLE_FACTORY_INFO
;
60 /** Return a pointer to the ACPI table generator.
62 @param [in] This Pointer to the Dynamic Table Factory Protocol.
63 @param [in] GeneratorId The ACPI table generator ID for the
65 @param [out] Generator Pointer to the requested ACPI table
68 @retval EFI_SUCCESS Success.
69 @retval EFI_INVALID_PARAMETER A parameter is invalid.
70 @retval EFI_NOT_FOUND The requested generator is not found
71 in the list of registered generators.
75 GetAcpiTableGenerator (
76 IN CONST EDKII_DYNAMIC_TABLE_FACTORY_PROTOCOL
* CONST This
,
77 IN CONST ACPI_TABLE_GENERATOR_ID GeneratorId
,
78 OUT CONST ACPI_TABLE_GENERATOR
** CONST Generator
81 /** Return a pointer to the SMBIOS table generator.
83 @param [in] This Pointer to the Dynamic Table Factory Protocol.
84 @param [in] GeneratorId The SMBIOS table generator ID for the
86 @param [out] Generator Pointer to the requested SMBIOS table
89 @retval EFI_SUCCESS Success.
90 @retval EFI_INVALID_PARAMETER A parameter is invalid.
91 @retval EFI_NOT_FOUND The requested generator is not found
92 in the list of registered generators.
96 GetSmbiosTableGenerator (
97 IN CONST EDKII_DYNAMIC_TABLE_FACTORY_PROTOCOL
* CONST This
,
98 IN CONST SMBIOS_TABLE_GENERATOR_ID GeneratorId
,
99 OUT CONST SMBIOS_TABLE_GENERATOR
** CONST Generator
102 /** Return a pointer to the DT table generator.
104 @param [in] This Pointer to the Dynamic Table Factory Protocol.
105 @param [in] GeneratorId The DT table generator ID for the
107 @param [out] Generator Pointer to the requested DT table
110 @retval EFI_SUCCESS Success.
111 @retval EFI_INVALID_PARAMETER A parameter is invalid.
112 @retval EFI_NOT_FOUND The requested generator is not found
113 in the list of registered generators.
117 GetDtTableGenerator (
118 IN CONST EDKII_DYNAMIC_TABLE_FACTORY_PROTOCOL
* CONST This
,
119 IN CONST DT_TABLE_GENERATOR_ID GeneratorId
,
120 OUT CONST DT_TABLE_GENERATOR
** CONST Generator
125 #endif // DYNAMIC_TABLE_FACTORY_H_