BOOLEAN EmptyLineAfter;\r
} UI_HII_DRIVER_INSTANCE;\r
\r
-UI_HII_DRIVER_INSTANCE *gHiiDriverList;\r
+STATIC UI_HII_DRIVER_INSTANCE *gHiiDriverList;\r
\r
\r
/**\r
Create the dynamic item to allow user to set the "BootNext" vaule.\r
\r
- @param CallbackData The BMM context data.\r
+ @param[in] HiiHandle The hii handle for the Uiapp driver.\r
+ @param[in] StartOpCodeHandle The opcode handle to save the new opcode.\r
\r
**/\r
VOID\r
)\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
- OptionId,\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
+ 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
\r
@param[in] HiiHandle The hii handle for the Uiapp driver.\r
@param[in] StartOpCodeHandle The opcode handle to save the new opcode.\r
- @param[in] PromptId The Prompt string id.\r
- @param[in] HelpId The help string id.\r
- @param[in] FormId The Form id for the dest form.\r
- @param[in] QuestionId The question id for this goto question.\r
\r
**/\r
VOID\r
\r
@param[in] HiiHandle The hii handle for the Uiapp driver.\r
@param[in] StartOpCodeHandle The opcode handle to save the new opcode.\r
- @param[in] PromptId The Prompt string id.\r
- @param[in] HelpId The help string id.\r
- @param[in] FormId The Form id for the dest form.\r
- @param[in] QuestionId The question id for this goto question.\r
\r
**/\r
VOID\r
\r
@param HiiHandle The hii handle for the Uiapp driver.\r
@param ClassGuid The class guid for the driver which is the target.\r
+ @param SpecialHandlerFn The pointer to the specail handler function, if any.\r
@param StartOpCodeHandle The opcode handle to save the new opcode.\r
- @param SpecialHandler The pointer to the specail handler function, if any.\r
\r
@retval EFI_SUCCESS Search the driver success\r
\r
\r
Count++;\r
if (Count >= CurrentSize) {\r
- DriverListPtr = AllocateCopyPool ((Count + UI_HII_DRIVER_LIST_SIZE) * sizeof (UI_HII_DRIVER_INSTANCE), gHiiDriverList);\r
+ DriverListPtr = ReallocatePool (\r
+ CurrentSize * sizeof (UI_HII_DRIVER_INSTANCE),\r
+ (Count + UI_HII_DRIVER_LIST_SIZE)\r
+ * sizeof (UI_HII_DRIVER_INSTANCE),\r
+ gHiiDriverList\r
+ );\r
ASSERT (DriverListPtr != NULL);\r
- FreePool (gHiiDriverList);\r
gHiiDriverList = DriverListPtr;\r
CurrentSize += UI_HII_DRIVER_LIST_SIZE;\r
}\r