)\r
{\r
BM_MENU_ENTRY *NewMenuEntry;\r
- UINTN NumberOfOptions;\r
+ BM_LOAD_CONTEXT *NewLoadContext;\r
UINT16 Index;\r
VOID *OptionsOpCodeHandle;\r
- CHAR16 *StringBuffer;\r
- EFI_STRING_ID OptionId;\r
+ UINT32 BootNextIndex;\r
\r
- NumberOfOptions = BootOptionMenu.MenuNumber;\r
- if (NumberOfOptions == 0) {\r
+ if (BootOptionMenu.MenuNumber == 0) {\r
return;\r
}\r
\r
+ BootNextIndex = NONE_BOOTNEXT_VALUE;\r
+\r
OptionsOpCodeHandle = HiiAllocateOpCodeHandle ();\r
ASSERT (OptionsOpCodeHandle != NULL);\r
\r
for (Index = 0; Index < BootOptionMenu.MenuNumber; Index++) {\r
NewMenuEntry = BOpt_GetMenuEntry (&BootOptionMenu, Index);\r
+ NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;\r
+\r
+ if (NewLoadContext->IsBootNext) {\r
+ HiiCreateOneOfOptionOpCode (\r
+ OptionsOpCodeHandle,\r
+ NewMenuEntry->DisplayStringToken,\r
+ EFI_IFR_OPTION_DEFAULT,\r
+ EFI_IFR_TYPE_NUM_SIZE_32,\r
+ Index\r
+ );\r
+ BootNextIndex = Index;\r
+ } else {\r
+ HiiCreateOneOfOptionOpCode (\r
+ OptionsOpCodeHandle,\r
+ NewMenuEntry->DisplayStringToken,\r
+ 0,\r
+ EFI_IFR_TYPE_NUM_SIZE_32,\r
+ Index\r
+ );\r
+ }\r
+ }\r
\r
- StringBuffer = HiiGetString (HiiHandle, NewMenuEntry->DisplayStringToken, NULL);\r
- ASSERT (StringBuffer != NULL);\r
- OptionId = HiiSetString (HiiHandle, 0, StringBuffer, NULL);\r
- FreePool (StringBuffer);\r
-\r
+ if (BootNextIndex == NONE_BOOTNEXT_VALUE) {\r
+ HiiCreateOneOfOptionOpCode (\r
+ OptionsOpCodeHandle,\r
+ STRING_TOKEN (STR_NONE),\r
+ EFI_IFR_OPTION_DEFAULT,\r
+ EFI_IFR_TYPE_NUM_SIZE_32,\r
+ NONE_BOOTNEXT_VALUE\r
+ );\r
+ } else {\r
HiiCreateOneOfOptionOpCode (\r
OptionsOpCodeHandle,\r
- OptionId,\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
);\r
}\r
\r
- StringBuffer = HiiGetString (HiiHandle, STRING_TOKEN (STR_NONE), NULL);\r
- ASSERT (StringBuffer != NULL);\r
- OptionId = HiiSetString (HiiHandle, 0, StringBuffer, NULL);\r
- FreePool (StringBuffer);\r
-\r
- //\r
- // Set no Boot Next Value as default.\r
- //\r
- HiiCreateOneOfOptionOpCode (\r
- OptionsOpCodeHandle,\r
- OptionId,\r
- EFI_IFR_OPTION_DEFAULT,\r
- EFI_IFR_TYPE_NUM_SIZE_16,\r
- Index\r
- );\r
-\r
HiiCreateOneOfOpCode (\r
StartOpCodeHandle,\r
(EFI_QUESTION_ID) BOOT_NEXT_QUESTION_ID,\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