diff --git a/ArmPkg/Include/Library/BdsLib.h b/ArmPkg/Include/Library/BdsLib.h index d16748da46..9fa6870418 100644 --- a/ArmPkg/Include/Library/BdsLib.h +++ b/ArmPkg/Include/Library/BdsLib.h @@ -66,6 +66,23 @@ BdsConnectAllDrivers ( VOID ); +/** + Return the value of a global variable defined by its VariableName. + The variable must be defined with the VendorGuid gEfiGlobalVariableGuid. + + @param VariableName A Null-terminated string that is the name of the vendor's + variable. + @param DefaultValue Value returned by the function if the variable does not exist + @param DataSize On input, the size in bytes of the return Data buffer. + On output the size of data returned in Data. + @param Value Value read from the UEFI Variable or copy of the default value + if the UEFI Variable does not exist + + @retval EFI_SUCCESS All drivers have been connected + @retval EFI_NOT_FOUND No handles match the search. + @retval EFI_OUT_OF_RESOURCES There is not resource pool memory to store the matching results. + +**/ EFI_STATUS GetGlobalEnvironmentVariable ( IN CONST CHAR16* VariableName, @@ -74,6 +91,23 @@ GetGlobalEnvironmentVariable ( OUT VOID** Value ); +/** + Return the value of the variable defined by its VariableName and VendorGuid + + @param VariableName A Null-terminated string that is the name of the vendor's + variable. + @param VendorGuid A unique identifier for the vendor. + @param DefaultValue Value returned by the function if the variable does not exist + @param DataSize On input, the size in bytes of the return Data buffer. + On output the size of data returned in Data. + @param Value Value read from the UEFI Variable or copy of the default value + if the UEFI Variable does not exist + + @retval EFI_SUCCESS All drivers have been connected + @retval EFI_NOT_FOUND No handles match the search. + @retval EFI_OUT_OF_RESOURCES There is not resource pool memory to store the matching results. + +**/ EFI_STATUS GetEnvironmentVariable ( IN CONST CHAR16* VariableName, diff --git a/ArmPkg/Library/BdsLib/BdsHelper.c b/ArmPkg/Library/BdsLib/BdsHelper.c index fb2ac9b806..1d4aa35728 100644 --- a/ArmPkg/Library/BdsLib/BdsHelper.c +++ b/ArmPkg/Library/BdsLib/BdsHelper.c @@ -331,7 +331,7 @@ GetEnvironmentVariable ( *Size, DefaultValue ); - *Value = DefaultValue; + *Value = AllocateCopyPool (*Size, DefaultValue); } else { return EFI_NOT_FOUND; } @@ -352,7 +352,7 @@ GetEnvironmentVariable ( *Size = VariableSize; } } else { - *Value = DefaultValue; + *Value = AllocateCopyPool (*Size, DefaultValue); return Status; }