From aede42a840cc6e3509048182eb204b5ce8f3187c Mon Sep 17 00:00:00 2001 From: kavsrf Date: Wed, 14 Jun 2017 12:49:40 +0300 Subject: BML update to sort "BootOrder" --- Library/CommonLib/EfiVar.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'Library') diff --git a/Library/CommonLib/EfiVar.c b/Library/CommonLib/EfiVar.c index e9c1082..e03544f 100644 --- a/Library/CommonLib/EfiVar.c +++ b/Library/CommonLib/EfiVar.c @@ -148,7 +148,8 @@ BootOrderRemove( EFI_STATUS BootOrderPresent( IN CHAR16 *OrderVarName, - UINT16 value) + UINT16 value, + UINTN *index) { EFI_STATUS res = EFI_NOT_READY; UINT16* varBootOrder; @@ -156,19 +157,19 @@ BootOrderPresent( 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) { + for (i = 0; i < BootOrderCount; ++i) { if (varBootOrder[i] == value) { - MEM_FREE(varBootOrder); res = EFI_SUCCESS; break; } } + if (index != NULL) *index = i; + MEM_FREE(varBootOrder); return res; } -- cgit v1.2.3