]> git.proxmox.com Git - mirror_edk2.git/blame - DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h
DynamicTablesPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / DynamicTablesPkg / Drivers / DynamicTableFactoryDxe / DynamicTableFactory.h
CommitLineData
3a609e0a
SM
1/** @file\r
2\r
3 Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.\r
4\r
9cd9bdc6 5 SPDX-License-Identifier: BSD-2-Clause-Patent\r
3a609e0a
SM
6\r
7 @par Glossary:\r
8 - Std - Standard\r
9 - ACPI - Advanced Configuration and Power Interface\r
10 - SMBIOS - System Management BIOS\r
11 - DT - Device Tree\r
12**/\r
13\r
14#ifndef DYNAMIC_TABLE_FACTORY_H_\r
15#define DYNAMIC_TABLE_FACTORY_H_\r
16\r
17#pragma pack(1)\r
18\r
19/** A structure that holds the list of registered ACPI and\r
20 SMBIOS table generators.\r
21*/\r
22typedef struct DynamicTableFactoryInfo {\r
23 /// An array for holding the list of Standard ACPI Table Generators.\r
24 CONST ACPI_TABLE_GENERATOR *\r
25 StdAcpiTableGeneratorList[EStdAcpiTableIdMax];\r
26\r
27 /// An array for holding the list of Custom ACPI Table Generators.\r
28 CONST ACPI_TABLE_GENERATOR *\r
29 CustomAcpiTableGeneratorList[FixedPcdGet16 (\r
30 PcdMaxCustomACPIGenerators\r
31 )];\r
32\r
33 /// An array for holding the list of Standard SMBIOS Table Generators.\r
34 CONST SMBIOS_TABLE_GENERATOR *\r
35 StdSmbiosTableGeneratorList[EStdSmbiosTableIdMax];\r
36\r
37 /// An array for holding the list of Custom SMBIOS Table Generators.\r
38 CONST SMBIOS_TABLE_GENERATOR *\r
39 CustomSmbiosTableGeneratorList[FixedPcdGet16 (\r
40 PcdMaxCustomSMBIOSGenerators\r
41 )];\r
42\r
43 /// An array for holding the list of Standard DT Table Generators.\r
44 CONST DT_TABLE_GENERATOR *\r
45 StdDtTableGeneratorList[EStdDtTableIdMax];\r
46\r
47 /// An array for holding the list of Custom DT Table Generators.\r
48 CONST DT_TABLE_GENERATOR *\r
49 CustomDtTableGeneratorList[FixedPcdGet16 (\r
50 PcdMaxCustomDTGenerators\r
51 )];\r
52} EDKII_DYNAMIC_TABLE_FACTORY_INFO;\r
53\r
54/** Return a pointer to the ACPI table generator.\r
55\r
56 @param [in] This Pointer to the Dynamic Table Factory Protocol.\r
57 @param [in] GeneratorId The ACPI table generator ID for the\r
58 requested generator.\r
59 @param [out] Generator Pointer to the requested ACPI table\r
60 generator.\r
61\r
62 @retval EFI_SUCCESS Success.\r
63 @retval EFI_INVALID_PARAMETER A parameter is invalid.\r
64 @retval EFI_NOT_FOUND The requested generator is not found\r
65 in the list of registered generators.\r
66**/\r
67EFI_STATUS\r
68EFIAPI\r
69GetAcpiTableGenerator (\r
70 IN CONST EDKII_DYNAMIC_TABLE_FACTORY_PROTOCOL * CONST This,\r
71 IN CONST ACPI_TABLE_GENERATOR_ID GeneratorId,\r
72 OUT CONST ACPI_TABLE_GENERATOR ** CONST Generator\r
73 );\r
74\r
75/** Return a pointer to the SMBIOS table generator.\r
76\r
77 @param [in] This Pointer to the Dynamic Table Factory Protocol.\r
78 @param [in] GeneratorId The SMBIOS table generator ID for the\r
79 requested generator.\r
80 @param [out] Generator Pointer to the requested SMBIOS table\r
81 generator.\r
82\r
83 @retval EFI_SUCCESS Success.\r
84 @retval EFI_INVALID_PARAMETER A parameter is invalid.\r
85 @retval EFI_NOT_FOUND The requested generator is not found\r
86 in the list of registered generators.\r
87**/\r
88EFI_STATUS\r
89EFIAPI\r
90GetSmbiosTableGenerator (\r
91 IN CONST EDKII_DYNAMIC_TABLE_FACTORY_PROTOCOL * CONST This,\r
92 IN CONST SMBIOS_TABLE_GENERATOR_ID GeneratorId,\r
93 OUT CONST SMBIOS_TABLE_GENERATOR ** CONST Generator\r
94 );\r
95\r
96/** Return a pointer to the DT table generator.\r
97\r
98 @param [in] This Pointer to the Dynamic Table Factory Protocol.\r
99 @param [in] GeneratorId The DT table generator ID for the\r
100 requested generator.\r
101 @param [out] Generator Pointer to the requested DT table\r
102 generator.\r
103\r
104 @retval EFI_SUCCESS Success.\r
105 @retval EFI_INVALID_PARAMETER A parameter is invalid.\r
106 @retval EFI_NOT_FOUND The requested generator is not found\r
107 in the list of registered generators.\r
108**/\r
109EFI_STATUS\r
110EFIAPI\r
111GetDtTableGenerator (\r
112 IN CONST EDKII_DYNAMIC_TABLE_FACTORY_PROTOCOL * CONST This,\r
113 IN CONST DT_TABLE_GENERATOR_ID GeneratorId,\r
114 OUT CONST DT_TABLE_GENERATOR ** CONST Generator\r
115 );\r
116\r
117#pragma pack()\r
118\r
119#endif // DYNAMIC_TABLE_FACTORY_H_\r