summaryrefslogtreecommitdiffstats
path: root/DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h
diff options
context:
space:
mode:
Diffstat (limited to 'DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h')
-rw-r--r--DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h125
1 files changed, 125 insertions, 0 deletions
diff --git a/DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h b/DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h
new file mode 100644
index 0000000000..100a87c312
--- /dev/null
+++ b/DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h
@@ -0,0 +1,125 @@
+/** @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_