summaryrefslogtreecommitdiffstats
path: root/MdePkg/Include/Library
diff options
context:
space:
mode:
authorBret Barkelew <brbarkel@microsoft.com>2019-01-04 10:22:12 +0800
committerLiming Gao <liming.gao@intel.com>2019-01-31 20:19:24 +0800
commit37bf678761d4a7dae8875f25d07c290da307b64c (patch)
treeced1582b0a78b511b7612b08189c5ecc827846f1 /MdePkg/Include/Library
parentca67441558cbe7d482ebf9506fee01b82447ddf1 (diff)
downloadedk2-37bf678761d4a7dae8875f25d07c290da307b64c.tar.gz
edk2-37bf678761d4a7dae8875f25d07c290da307b64c.tar.bz2
edk2-37bf678761d4a7dae8875f25d07c290da307b64c.zip
MdePkg/UefiLib: Add a new API GetVariable3
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1396 Add a new API GetVariable3, which can return the attributes of a variable during reading it. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Jiansong Xu <jiansongx.xu@intel.com> Cc: Liming Gao <liming.gao@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
Diffstat (limited to 'MdePkg/Include/Library')
-rw-r--r--MdePkg/Include/Library/UefiLib.h45
1 files changed, 39 insertions, 6 deletions
diff --git a/MdePkg/Include/Library/UefiLib.h b/MdePkg/Include/Library/UefiLib.h
index 08222d488b..7d97408eab 100644
--- a/MdePkg/Include/Library/UefiLib.h
+++ b/MdePkg/Include/Library/UefiLib.h
@@ -737,9 +737,9 @@ GetEfiGlobalVariable (
@param[out] Value The buffer point saved the variable info.
@param[out] Size The buffer size of the variable.
- @return EFI_OUT_OF_RESOURCES Allocate buffer failed.
- @return EFI_SUCCESS Find the specified variable.
- @return Others Errors Return errors from call to gRT->GetVariable.
+ @retval EFI_OUT_OF_RESOURCES Allocate buffer failed.
+ @retval EFI_SUCCESS Find the specified variable.
+ @retval Others Errors Return errors from call to gRT->GetVariable.
**/
EFI_STATUS
@@ -765,9 +765,9 @@ GetVariable2 (
@param[out] Value The buffer point saved the variable info.
@param[out] Size The buffer size of the variable.
- @return EFI_OUT_OF_RESOURCES Allocate buffer failed.
- @return EFI_SUCCESS Find the specified variable.
- @return Others Errors Return errors from call to gRT->GetVariable.
+ @retval EFI_OUT_OF_RESOURCES Allocate buffer failed.
+ @retval EFI_SUCCESS Find the specified variable.
+ @retval Others Errors Return errors from call to gRT->GetVariable.
**/
EFI_STATUS
@@ -778,6 +778,39 @@ GetEfiGlobalVariable2 (
OUT UINTN *Size OPTIONAL
);
+/** Return the attributes of the variable.
+
+ Returns the status whether get the variable success. The function retrieves
+ variable through the UEFI Runtime Service GetVariable(). The
+ returned buffer is allocated using AllocatePool(). The caller is responsible
+ for freeing this buffer with FreePool(). The attributes are returned if
+ the caller provides a valid Attribute parameter.
+
+ If Name is NULL, then ASSERT().
+ If Guid is NULL, then ASSERT().
+ If Value is NULL, then ASSERT().
+
+ @param[in] Name The pointer to a Null-terminated Unicode string.
+ @param[in] Guid The pointer to an EFI_GUID structure
+ @param[out] Value The buffer point saved the variable info.
+ @param[out] Size The buffer size of the variable.
+ @param[out] Attr The pointer to the variable attributes as found in var store
+
+ @retval EFI_OUT_OF_RESOURCES Allocate buffer failed.
+ @retval EFI_SUCCESS Find the specified variable.
+ @retval Others Errors Return errors from call to gRT->GetVariable.
+
+**/
+EFI_STATUS
+EFIAPI
+GetVariable3(
+ IN CONST CHAR16 *Name,
+ IN CONST EFI_GUID *Guid,
+ OUT VOID **Value,
+ OUT UINTN *Size OPTIONAL,
+ OUT UINT32 *Attr OPTIONAL
+ );
+
/**
Returns a pointer to an allocated buffer that contains the best matching language
from a set of supported languages.