VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/Library/CommonLib/EfiVar.c
diff options
context:
space:
mode:
Diffstat (limited to 'Library/CommonLib/EfiVar.c')
-rw-r--r--Library/CommonLib/EfiVar.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/Library/CommonLib/EfiVar.c b/Library/CommonLib/EfiVar.c
index fad6eb5..e9c1082 100644
--- a/Library/CommonLib/EfiVar.c
+++ b/Library/CommonLib/EfiVar.c
@@ -146,6 +146,33 @@ BootOrderRemove(
}
EFI_STATUS
+BootOrderPresent(
+ IN CHAR16 *OrderVarName,
+ UINT16 value)
+{
+ EFI_STATUS res = EFI_NOT_READY;
+ UINT16* varBootOrder;
+ UINTN varBootOrderSize;
+ UINT32 varBootOrderAttr;
+ UINTN BootOrderCount;
+ UINTN i;
+ UINTN j;
+
+ res = EfiGetVar(OrderVarName, &gEfiGlobalVariableGuid, &varBootOrder, &varBootOrderSize, &varBootOrderAttr);
+ if (EFI_ERROR(res)) return res;
+ BootOrderCount = varBootOrderSize / sizeof(UINT16);
+ res = EFI_NOT_FOUND;
+ for (j = 0, i = 0; i < BootOrderCount; ++i) {
+ if (varBootOrder[i] == value) {
+ MEM_FREE(varBootOrder);
+ res = EFI_SUCCESS;
+ break;
+ }
+ }
+ return res;
+}
+
+EFI_STATUS
BootMenuItemRemove(
IN CHAR16 *VarName
)