diff options
Diffstat (limited to 'src/VBox/Devices/EFI/Firmware/DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h')
-rw-r--r-- | src/VBox/Devices/EFI/Firmware/DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/src/VBox/Devices/EFI/Firmware/DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h b/src/VBox/Devices/EFI/Firmware/DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h new file mode 100644 index 00000000..900fe8ef --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware/DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactory.h @@ -0,0 +1,119 @@ +/** @file + + Copyright (c) 2017 - 2019, ARM Limited. All rights reserved. + + SPDX-License-Identifier: BSD-2-Clause-Patent + + @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_ |