]> git.proxmox.com Git - mirror_edk2.git/blob - DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / DynamicTablesPkg / Drivers / DynamicTableFactoryDxe / DynamicTableFactory.h
1 /** @file
2
3 Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.
4
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7 @par Glossary:
8 - Std - Standard
9 - ACPI - Advanced Configuration and Power Interface
10 - SMBIOS - System Management BIOS
11 - DT - Device Tree
12 **/
13
14 #ifndef DYNAMIC_TABLE_FACTORY_H_
15 #define DYNAMIC_TABLE_FACTORY_H_
16
17 #pragma pack(1)
18
19 /** A structure that holds the list of registered ACPI and
20 SMBIOS table generators.
21 */
22 typedef struct DynamicTableFactoryInfo {
23 /// An array for holding the list of Standard ACPI Table Generators.
24 CONST ACPI_TABLE_GENERATOR *
25 StdAcpiTableGeneratorList[EStdAcpiTableIdMax];
26
27 /// An array for holding the list of Custom ACPI Table Generators.
28 CONST ACPI_TABLE_GENERATOR *
29 CustomAcpiTableGeneratorList[FixedPcdGet16 (
30 PcdMaxCustomACPIGenerators
31 )];
32
33 /// An array for holding the list of Standard SMBIOS Table Generators.
34 CONST SMBIOS_TABLE_GENERATOR *
35 StdSmbiosTableGeneratorList[EStdSmbiosTableIdMax];
36
37 /// An array for holding the list of Custom SMBIOS Table Generators.
38 CONST SMBIOS_TABLE_GENERATOR *
39 CustomSmbiosTableGeneratorList[FixedPcdGet16 (
40 PcdMaxCustomSMBIOSGenerators
41 )];
42
43 /// An array for holding the list of Standard DT Table Generators.
44 CONST DT_TABLE_GENERATOR *
45 StdDtTableGeneratorList[EStdDtTableIdMax];
46
47 /// An array for holding the list of Custom DT Table Generators.
48 CONST DT_TABLE_GENERATOR *
49 CustomDtTableGeneratorList[FixedPcdGet16 (
50 PcdMaxCustomDTGenerators
51 )];
52 } EDKII_DYNAMIC_TABLE_FACTORY_INFO;
53
54 /** Return a pointer to the ACPI table generator.
55
56 @param [in] This Pointer to the Dynamic Table Factory Protocol.
57 @param [in] GeneratorId The ACPI table generator ID for the
58 requested generator.
59 @param [out] Generator Pointer to the requested ACPI table
60 generator.
61
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.
66 **/
67 EFI_STATUS
68 EFIAPI
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
73 );
74
75 /** Return a pointer to the SMBIOS table generator.
76
77 @param [in] This Pointer to the Dynamic Table Factory Protocol.
78 @param [in] GeneratorId The SMBIOS table generator ID for the
79 requested generator.
80 @param [out] Generator Pointer to the requested SMBIOS table
81 generator.
82
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.
87 **/
88 EFI_STATUS
89 EFIAPI
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
94 );
95
96 /** Return a pointer to the DT table generator.
97
98 @param [in] This Pointer to the Dynamic Table Factory Protocol.
99 @param [in] GeneratorId The DT table generator ID for the
100 requested generator.
101 @param [out] Generator Pointer to the requested DT table
102 generator.
103
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.
108 **/
109 EFI_STATUS
110 EFIAPI
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
115 );
116
117 #pragma pack()
118
119 #endif // DYNAMIC_TABLE_FACTORY_H_