diff options
Diffstat (limited to 'Library/CommonLib/EfiVar.c')
-rw-r--r-- | Library/CommonLib/EfiVar.c | 27 |
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
)
|