]> git.proxmox.com Git - mirror_edk2.git/blobdiff - DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h
DynamicTablesPkg: Dynamic Table Factory Dxe
[mirror_edk2.git] / DynamicTablesPkg / Drivers / DynamicTableFactoryDxe / DynamicTableFactory.h
diff --git a/DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h b/DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h
new file mode 100644 (file)
index 0000000..100a87c
--- /dev/null
@@ -0,0 +1,125 @@
+/** @file\r
+\r
+  Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.\r
+\r
+  This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+  @par Glossary:\r
+    - Std    - Standard\r
+    - ACPI   - Advanced Configuration and Power Interface\r
+    - SMBIOS - System Management BIOS\r
+    - DT     - Device Tree\r
+**/\r
+\r
+#ifndef DYNAMIC_TABLE_FACTORY_H_\r
+#define DYNAMIC_TABLE_FACTORY_H_\r
+\r
+#pragma pack(1)\r
+\r
+/** A structure that holds the list of registered ACPI and\r
+    SMBIOS table generators.\r
+*/\r
+typedef struct DynamicTableFactoryInfo {\r
+  /// An array for holding the list of Standard ACPI Table  Generators.\r
+  CONST ACPI_TABLE_GENERATOR *\r
+          StdAcpiTableGeneratorList[EStdAcpiTableIdMax];\r
+\r
+  /// An array for holding the list of Custom ACPI Table Generators.\r
+  CONST ACPI_TABLE_GENERATOR *\r
+          CustomAcpiTableGeneratorList[FixedPcdGet16 (\r
+                                         PcdMaxCustomACPIGenerators\r
+                                         )];\r
+\r
+  /// An array for holding the list of Standard SMBIOS Table Generators.\r
+  CONST SMBIOS_TABLE_GENERATOR *\r
+          StdSmbiosTableGeneratorList[EStdSmbiosTableIdMax];\r
+\r
+  /// An array for holding the list of Custom SMBIOS Table Generators.\r
+  CONST SMBIOS_TABLE_GENERATOR *\r
+          CustomSmbiosTableGeneratorList[FixedPcdGet16 (\r
+                                           PcdMaxCustomSMBIOSGenerators\r
+                                           )];\r
+\r
+  /// An array for holding the list of Standard DT Table Generators.\r
+  CONST DT_TABLE_GENERATOR *\r
+          StdDtTableGeneratorList[EStdDtTableIdMax];\r
+\r
+  /// An array for holding the list of Custom DT Table Generators.\r
+  CONST DT_TABLE_GENERATOR *\r
+          CustomDtTableGeneratorList[FixedPcdGet16 (\r
+                                       PcdMaxCustomDTGenerators\r
+                                       )];\r
+} EDKII_DYNAMIC_TABLE_FACTORY_INFO;\r
+\r
+/** Return a pointer to the ACPI table generator.\r
+\r
+  @param [in]  This         Pointer to the Dynamic Table Factory Protocol.\r
+  @param [in]  GeneratorId  The ACPI table generator ID for the\r
+                            requested generator.\r
+  @param [out] Generator    Pointer to the requested ACPI table\r
+                            generator.\r
+\r
+  @retval EFI_SUCCESS           Success.\r
+  @retval EFI_INVALID_PARAMETER A parameter is invalid.\r
+  @retval EFI_NOT_FOUND         The requested generator is not found\r
+                                in the list of registered generators.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+GetAcpiTableGenerator (\r
+  IN  CONST EDKII_DYNAMIC_TABLE_FACTORY_PROTOCOL  * CONST This,\r
+  IN  CONST ACPI_TABLE_GENERATOR_ID                       GeneratorId,\r
+  OUT CONST ACPI_TABLE_GENERATOR                 ** CONST Generator\r
+  );\r
+\r
+/** Return a pointer to the SMBIOS table generator.\r
+\r
+  @param [in]  This         Pointer to the Dynamic Table Factory Protocol.\r
+  @param [in]  GeneratorId  The SMBIOS table generator ID for the\r
+                            requested generator.\r
+  @param [out] Generator    Pointer to the requested SMBIOS table\r
+                            generator.\r
+\r
+  @retval EFI_SUCCESS           Success.\r
+  @retval EFI_INVALID_PARAMETER A parameter is invalid.\r
+  @retval EFI_NOT_FOUND         The requested generator is not found\r
+                                in the list of registered generators.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+GetSmbiosTableGenerator (\r
+  IN  CONST EDKII_DYNAMIC_TABLE_FACTORY_PROTOCOL  * CONST This,\r
+  IN  CONST SMBIOS_TABLE_GENERATOR_ID                     GeneratorId,\r
+  OUT CONST SMBIOS_TABLE_GENERATOR               ** CONST Generator\r
+  );\r
+\r
+/** Return a pointer to the DT table generator.\r
+\r
+  @param [in]  This         Pointer to the Dynamic Table Factory Protocol.\r
+  @param [in]  GeneratorId  The DT table generator ID for the\r
+                            requested generator.\r
+  @param [out] Generator    Pointer to the requested DT table\r
+                            generator.\r
+\r
+  @retval EFI_SUCCESS           Success.\r
+  @retval EFI_INVALID_PARAMETER A parameter is invalid.\r
+  @retval EFI_NOT_FOUND         The requested generator is not found\r
+                                in the list of registered generators.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+GetDtTableGenerator (\r
+  IN  CONST EDKII_DYNAMIC_TABLE_FACTORY_PROTOCOL  * CONST This,\r
+  IN  CONST DT_TABLE_GENERATOR_ID                         GeneratorId,\r
+  OUT CONST DT_TABLE_GENERATOR                   ** CONST Generator\r
+  );\r
+\r
+#pragma pack()\r
+\r
+#endif // DYNAMIC_TABLE_FACTORY_H_\r