The functions for Boot Maintainence Main menu.\r
\r
Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
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
BM_MENU_ENTRY *NewMenuEntry;\r
BM_LOAD_CONTEXT *NewLoadContext;\r
- UINTN NumberOfOptions;\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
NewMenuEntry = BOpt_GetMenuEntry (&BootOptionMenu, Index);\r
NewLoadContext = (BM_LOAD_CONTEXT *) NewMenuEntry->VariableContext;\r
\r
- StringBuffer = HiiGetString (HiiHandle, NewMenuEntry->DisplayStringToken, NULL);\r
- ASSERT (StringBuffer != NULL);\r
- OptionId = HiiSetString (HiiHandle, 0, StringBuffer, NULL);\r
- FreePool (StringBuffer);\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
+ 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