summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
1f9f60a)
Currently the invalid boot next set to the number of boot option,
when add a new boot option,also need update the boot next value,
otherwise it will be incorrect.Now set the type of BootNext value
to UINT32,the number out of the range of UINT16 means it is an
invalid BootNext Value.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19591
6f19259b-4bc3-4df7-8a09-
765794883524
//\r
// Initialize data which located in BMM main page\r
//\r
//\r
// Initialize data which located in BMM main page\r
//\r
- CallbackData->BmmFakeNvData.BootNext = (UINT16) (BootOptionMenu.MenuNumber);\r
+ CallbackData->BmmFakeNvData.BootNext = NONE_BOOTNEXT_VALUE;\r
for (Index = 0; Index < BootOptionMenu.MenuNumber; Index++) {\r
NewMenuEntry = BOpt_GetMenuEntry (&BootOptionMenu, Index);\r
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;\r
for (Index = 0; Index < BootOptionMenu.MenuNumber; Index++) {\r
NewMenuEntry = BOpt_GetMenuEntry (&BootOptionMenu, Index);\r
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;\r
\r
#define STRING_DEPOSITORY_NUMBER 8\r
\r
\r
#define STRING_DEPOSITORY_NUMBER 8\r
\r
+#define NONE_BOOTNEXT_VALUE (0xFFFF + 1)\r
+\r
///\r
/// Serial Ports attributes, first one is the value for\r
/// return from callback function, stringtoken is used to\r
///\r
/// Serial Ports attributes, first one is the value for\r
/// return from callback function, stringtoken is used to\r
// for Timeout, BootNext, Variables respectively\r
//\r
UINT16 BootTimeOut;\r
// for Timeout, BootNext, Variables respectively\r
//\r
UINT16 BootTimeOut;\r
\r
//\r
// This is the COM1 Attributes value storage\r
\r
//\r
// This is the COM1 Attributes value storage\r
OptionsOpCodeHandle = HiiAllocateOpCodeHandle ();\r
ASSERT (OptionsOpCodeHandle != NULL);\r
\r
OptionsOpCodeHandle = HiiAllocateOpCodeHandle ();\r
ASSERT (OptionsOpCodeHandle != NULL);\r
\r
- CallbackData->BmmFakeNvData.BootNext = (UINT16) (BootOptionMenu.MenuNumber);\r
+ CallbackData->BmmFakeNvData.BootNext = NONE_BOOTNEXT_VALUE;\r
\r
for (Index = 0; Index < BootOptionMenu.MenuNumber; Index++) {\r
NewMenuEntry = BOpt_GetMenuEntry (&BootOptionMenu, Index);\r
\r
for (Index = 0; Index < BootOptionMenu.MenuNumber; Index++) {\r
NewMenuEntry = BOpt_GetMenuEntry (&BootOptionMenu, Index);\r
OptionsOpCodeHandle,\r
NewMenuEntry->DisplayStringToken,\r
EFI_IFR_OPTION_DEFAULT,\r
OptionsOpCodeHandle,\r
NewMenuEntry->DisplayStringToken,\r
EFI_IFR_OPTION_DEFAULT,\r
- EFI_IFR_TYPE_NUM_SIZE_16,\r
+ EFI_IFR_TYPE_NUM_SIZE_32,\r
Index\r
);\r
CallbackData->BmmFakeNvData.BootNext = Index;\r
Index\r
);\r
CallbackData->BmmFakeNvData.BootNext = Index;\r
OptionsOpCodeHandle,\r
NewMenuEntry->DisplayStringToken,\r
0,\r
OptionsOpCodeHandle,\r
NewMenuEntry->DisplayStringToken,\r
0,\r
- EFI_IFR_TYPE_NUM_SIZE_16,\r
+ EFI_IFR_TYPE_NUM_SIZE_32,\r
- if (CallbackData->BmmFakeNvData.BootNext == Index) {\r
+ if (CallbackData->BmmFakeNvData.BootNext == NONE_BOOTNEXT_VALUE) {\r
HiiCreateOneOfOptionOpCode (\r
OptionsOpCodeHandle,\r
STRING_TOKEN (STR_NONE),\r
EFI_IFR_OPTION_DEFAULT,\r
HiiCreateOneOfOptionOpCode (\r
OptionsOpCodeHandle,\r
STRING_TOKEN (STR_NONE),\r
EFI_IFR_OPTION_DEFAULT,\r
- EFI_IFR_TYPE_NUM_SIZE_16,\r
- Index\r
+ EFI_IFR_TYPE_NUM_SIZE_32,\r
+ NONE_BOOTNEXT_VALUE\r
);\r
} else {\r
HiiCreateOneOfOptionOpCode (\r
OptionsOpCodeHandle,\r
STRING_TOKEN (STR_NONE),\r
0,\r
);\r
} else {\r
HiiCreateOneOfOptionOpCode (\r
OptionsOpCodeHandle,\r
STRING_TOKEN (STR_NONE),\r
0,\r
- EFI_IFR_TYPE_NUM_SIZE_16,\r
- Index\r
+ EFI_IFR_TYPE_NUM_SIZE_32,\r
+ NONE_BOOTNEXT_VALUE\r
STRING_TOKEN (STR_BOOT_NEXT),\r
STRING_TOKEN (STR_BOOT_NEXT_HELP),\r
0,\r
STRING_TOKEN (STR_BOOT_NEXT),\r
STRING_TOKEN (STR_BOOT_NEXT_HELP),\r
0,\r
- EFI_IFR_NUMERIC_SIZE_2,\r
+ EFI_IFR_NUMERIC_SIZE_4,\r
OptionsOpCodeHandle,\r
NULL\r
);\r
OptionsOpCodeHandle,\r
NULL\r
);\r
NewLoadContext->IsBootNext = FALSE;\r
}\r
\r
NewLoadContext->IsBootNext = FALSE;\r
}\r
\r
- if (CurrentFakeNVMap->BootNext == BootOptionMenu.MenuNumber) {\r
+ if (CurrentFakeNVMap->BootNext == NONE_BOOTNEXT_VALUE) {\r
EfiLibDeleteVariable (L"BootNext", &gEfiGlobalVariableGuid);\r
return EFI_SUCCESS;\r
}\r
EfiLibDeleteVariable (L"BootNext", &gEfiGlobalVariableGuid);\r
return EFI_SUCCESS;\r
}\r