/** @file uba central config database Protocol @copyright Copyright 2012 - 2021 Intel Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _UBA_CONFIG_DATABASE_H_ #define _UBA_CONFIG_DATABASE_H_ // {E03E0D46-5263-4845-B0A4-58D57B3177E2} #define UBA_CONFIG_DATABASE_PROTOCOL_GUID \ { 0xe03e0d46, 0x5263, 0x4845, { 0xb0, 0xa4, 0x58, 0xd5, 0x7b, 0x31, 0x77, 0xe2 } } typedef struct _UBA_CONFIG_DATABASE_PROTOCOL UBA_CONFIG_DATABASE_PROTOCOL; #define UBA_CONFIG_PROTOCOL_SIGNATURE SIGNATURE_32('M', 'S', 'K', 'P') #define UBA_CONFIG_PROTOCOL_VERSION 0x01 /** Get platform's GUID and user friendly name by PlatformType. This is used when you need a PlatformId to Add/Get platform data Core will create a new platform for you if the PlatformType is not recorded in database, and assgin a unique GUID for this platform. @param This uba Protocol instance. @param PlatformType The platform type, same define as Platform.h. @param PlatformId The GUID for this platform. @param PlatformName The user friendly name for this platform. @retval EFI_ALREADY_STARTED Create new for an exist platform. @retval EFI_OUT_OF_RESOURCES Resource not enough. @retval EFI_NOT_FOUND Platform not found. @retval EFI_SUCCESS Operation success. **/ typedef EFI_STATUS (EFIAPI *UBA_CONFIG_GET_PLATFORM) ( IN UBA_CONFIG_DATABASE_PROTOCOL *This, OUT UINT32 *PlatformType, OUT EFI_GUID *PlatformId, OUT CHAR8 *PlatformName ); /** Add configuration data to uba configuration database. @param This uba Protocol instance. @param PlatformId The GUID for this platform. @param ResId The configuration data resource id. @param Data The data buffer pointer. @param DataSize Size of data want to add into database. @retval EFI_INVALID_PARAMETER Required parameters not correct. @retval EFI_OUT_OF_RESOURCES Resource not enough. @retval EFI_NOT_FOUND Platform not found. @retval EFI_SUCCESS Operation success. **/ typedef EFI_STATUS (EFIAPI *UBA_CONFIG_ADD_DATA) ( IN UBA_CONFIG_DATABASE_PROTOCOL *This, IN EFI_GUID *ResId, IN VOID *Data, IN UINTN DataSize ); /** Get configuration data from uba configuration database. @param This uba Protocol instance. @param ResId The configuration data resource id. @param Data The data buffer pointer. @param DataSize IN:Size of data want to get, OUT: Size of data in database. @retval EFI_INVALID_PARAMETER Required parameters not correct. @retval EFI_BUFFER_TOO_SMALL The DataSize of Data buffer is too small to get this configuration data @retval EFI_OUT_OF_RESOURCES Resource not enough. @retval EFI_NOT_FOUND Platform or data not found. @retval EFI_SUCCESS Operation success. **/ typedef EFI_STATUS (EFIAPI *UBA_CONFIG_GET_DATA) ( IN UBA_CONFIG_DATABASE_PROTOCOL *This, IN EFI_GUID *ResId, OUT VOID *Data, OUT UINTN *DataSize ); // // UbaConfigDatabaseProtocol // struct _UBA_CONFIG_DATABASE_PROTOCOL { UINT32 Signature; UINT32 Version; UBA_CONFIG_GET_PLATFORM GetSku; UBA_CONFIG_ADD_DATA AddData; UBA_CONFIG_GET_DATA GetData; }; extern EFI_GUID gUbaConfigDatabaseProtocolGuid; #endif // __UBA_CONFIG_DATABASE_H_