/**@file Copyright (c) 2017, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _HOB_VARIABLE_LIB_H_ #define _HOB_VARIABLE_LIB_H_ /** This function finds the default data and create GUID hob for it. @retval EFI_SUCCESS The matched default data is found. @retval EFI_NOT_FOUND The matched default data is not found. @retval EFI_OUT_OF_RESOURCES No enough resource to create HOB. **/ EFI_STATUS EFIAPI CreateVariableHob ( VOID ); /** This function finds the matched default data and create GUID hob for it. @param StoreId Specifies the type of defaults to retrieve. @param SkuId Specifies the platform board of defaults to retrieve. @retval EFI_SUCCESS The matched default data is found. @retval EFI_NOT_FOUND The matched default data is not found. @retval EFI_OUT_OF_RESOURCES No enough resource to create HOB. **/ EFI_STATUS EFIAPI CreateDefaultVariableHob ( IN UINT16 StoreId, IN UINT16 SkuId ); /** Get variable from default variable HOB. @param[in] VariableName A Null-terminated string that is the name of the vendor's variable. @param[in] VendorGuid A unique identifier for the vendor. @param[out] Attributes If not NULL, a pointer to the memory location to return the attributes bitmask for the variable. @param[in, out] DataSize On input, the size in bytes of the return Data buffer. On output the size of data returned in Data. @param[out] Data The buffer to return the contents of the variable. @retval EFI_SUCCESS The function completed successfully. @retval EFI_NOT_FOUND The variable was not found. @retval EFI_BUFFER_TOO_SMALL The DataSize is too small for the result. @retval EFI_INVALID_PARAMETER VariableName is NULL. @retval EFI_INVALID_PARAMETER VendorGuid is NULL. @retval EFI_INVALID_PARAMETER DataSize is NULL. @retval EFI_INVALID_PARAMETER The DataSize is not too small and Data is NULL. **/ EFI_STATUS EFIAPI GetVariableFromHob ( IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, OUT UINT32 *Attributes, OPTIONAL IN OUT UINTN *DataSize, OUT VOID *Data ); /** Set variable to default variable HOB. @param[in] VariableName A Null-terminated string that is the name of the vendor's variable. @param[in] VendorGuid A unique identifier for the vendor. @param[in] Attributes If not NULL, a pointer to the memory location to set the attributes bitmask for the variable. @param[in] DataSize On input, the size in bytes of the return Data buffer. On output the size of data returned in Data. @param[in] Data The buffer to return the contents of the variable. @retval EFI_SUCCESS The function completed successfully. @retval EFI_NOT_FOUND The variable was not found. @retval EFI_INVALID_PARAMETER VariableName is NULL. @retval EFI_INVALID_PARAMETER VendorGuid is NULL. @retval EFI_INVALID_PARAMETER Attributes is not NULL, but attributes value is 0. @retval EFI_INVALID_PARAMETER DataSize is not equal to the variable data size. @retval EFI_INVALID_PARAMETER The DataSize is equal to the variable data size, but Data is NULL. **/ EFI_STATUS EFIAPI SetVariableToHob ( IN CHAR16 *VariableName, IN EFI_GUID *VendorGuid, IN UINT32 *Attributes, OPTIONAL IN UINTN DataSize, IN VOID *Data ); #endif