EFI_GUID mBootMaintGuid = BOOT_MAINT_FORMSET_GUID;\r
EFI_GUID mFileExplorerGuid = FILE_EXPLORE_FORMSET_GUID;\r
\r
-CHAR16 mBootMaintStorageName[] = L"BmData";\r
+CHAR16 mBootMaintStorageName[] = L"BmmData";\r
CHAR16 mFileExplorerStorageName[] = L"FeData";\r
\r
/**\r
for (Index = 0; Index < MenuOption->MenuNumber; Index++) {\r
NewMenuEntry = BOpt_GetMenuEntry (MenuOption, Index);\r
\r
- HiiLibNewString (\r
- HiiHandle,\r
- &NewMenuEntry->DisplayStringToken,\r
- NewMenuEntry->DisplayString\r
- );\r
+ NewMenuEntry->DisplayStringToken = HiiSetString (\r
+ HiiHandle,\r
+ 0,\r
+ NewMenuEntry->DisplayString,\r
+ NULL\r
+ );\r
\r
if (NULL == NewMenuEntry->HelpString) {\r
NewMenuEntry->HelpStringToken = NewMenuEntry->DisplayStringToken;\r
} else {\r
- HiiLibNewString (\r
- HiiHandle,\r
- &NewMenuEntry->HelpStringToken,\r
- NewMenuEntry->HelpString\r
- );\r
+ NewMenuEntry->HelpStringToken = HiiSetString (\r
+ HiiHandle,\r
+ 0,\r
+ NewMenuEntry->HelpString,\r
+ NULL\r
+ );\r
}\r
}\r
\r
UINT8 *NewLegacyDev;\r
UINT8 *DisMap;\r
EFI_FORM_ID FormId;\r
- UINTN BufferSize;\r
-\r
+ \r
if ((Value == NULL) || (ActionRequest == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
//\r
// Retrive uncommitted data from Form Browser\r
//\r
- CurrentFakeNVMap = &Private->BmmFakeNvData;\r
- BufferSize = sizeof (BMM_FAKE_NV_DATA);\r
- Status = GetBrowserData (NULL, NULL, &BufferSize, (UINT8 *) CurrentFakeNVMap);\r
- if (EFI_ERROR (Status)) {\r
- return Status;\r
+ CurrentFakeNVMap = (BMM_FAKE_NV_DATA *) HiiGetBrowserData (&mBootMaintGuid, mBootMaintStorageName, sizeof (BMM_FAKE_NV_DATA));\r
+ DisMap = (UINT8 *) CurrentFakeNVMap;\r
+ for (Index = 0; Index < sizeof (BMM_FAKE_NV_DATA); Index ++) {\r
+ if (DisMap [Index] != 0) {\r
+ break;\r
+ }\r
+ }\r
+ \r
+ if (Index == sizeof (BMM_FAKE_NV_DATA)) {\r
+ FreePool (CurrentFakeNVMap);\r
+ CurrentFakeNVMap = &Private->BmmFakeNvData;\r
}\r
\r
//\r
//\r
// Pass changed uncommitted data back to Form Browser\r
//\r
- BufferSize = sizeof (BMM_FAKE_NV_DATA);\r
- Status = SetBrowserData (NULL, NULL, BufferSize, (UINT8 *) CurrentFakeNVMap, NULL);\r
+ Status = HiiSetBrowserData (&mBootMaintGuid, mBootMaintStorageName, sizeof (BMM_FAKE_NV_DATA), (UINT8 *) CurrentFakeNVMap, NULL);\r
+\r
+ //\r
+ // Update local settting.\r
+ //\r
+ if (CurrentFakeNVMap != &Private->BmmFakeNvData) {\r
+ CopyMem (&Private->BmmFakeNvData, CurrentFakeNVMap, sizeof (BMM_FAKE_NV_DATA));\r
+ FreePool (CurrentFakeNVMap);\r
+ }\r
\r
return Status;\r
}\r
)\r
{\r
EFI_LEGACY_BIOS_PROTOCOL *LegacyBios;\r
- EFI_HII_PACKAGE_LIST_HEADER *PackageList;\r
BMM_CALLBACK_DATA *BmmCallbackInfo;\r
EFI_STATUS Status;\r
UINT8 *Ptr;\r
//\r
// Post our Boot Maint VFR binnary to the HII database.\r
//\r
- PackageList = HiiLibPreparePackageList (2, &mBootMaintGuid, BmBin, BdsDxeStrings);\r
- ASSERT (PackageList != NULL);\r
-\r
- Status = gHiiDatabase->NewPackageList (\r
- gHiiDatabase,\r
- PackageList,\r
- BmmCallbackInfo->BmmDriverHandle,\r
- &BmmCallbackInfo->BmmHiiHandle\r
- );\r
- FreePool (PackageList);\r
+ BmmCallbackInfo->BmmHiiHandle = HiiAddPackages (\r
+ &mBootMaintGuid,\r
+ BmmCallbackInfo->BmmDriverHandle,\r
+ BmBin,\r
+ BdsDxeStrings,\r
+ NULL\r
+ );\r
+ ASSERT (BmmCallbackInfo->BmmHiiHandle != NULL);\r
\r
//\r
// Post our File Explorer VFR binary to the HII database.\r
//\r
- PackageList = HiiLibPreparePackageList (2, &mFileExplorerGuid, FEBin, BdsDxeStrings);\r
- ASSERT (PackageList != NULL);\r
-\r
- Status = gHiiDatabase->NewPackageList (\r
- gHiiDatabase,\r
- PackageList,\r
- BmmCallbackInfo->FeDriverHandle,\r
- &BmmCallbackInfo->FeHiiHandle\r
- );\r
- FreePool (PackageList);\r
+ BmmCallbackInfo->FeHiiHandle = HiiAddPackages (\r
+ &mFileExplorerGuid,\r
+ BmmCallbackInfo->FeDriverHandle,\r
+ FEBin,\r
+ BdsDxeStrings,\r
+ NULL\r
+ );\r
+ ASSERT (BmmCallbackInfo->FeHiiHandle != NULL);\r
\r
//\r
- // Allocate space for creation of Buffer\r
+ // Init OpCode Handle and Allocate space for creation of Buffer\r
//\r
- gUpdateData.BufferSize = UPDATE_DATA_SIZE;\r
- gUpdateData.Data = AllocateZeroPool (UPDATE_DATA_SIZE);\r
- if (gUpdateData.Data == NULL) {\r
+ mStartOpCodeHandle = HiiAllocateOpCodeHandle ();\r
+ if (mStartOpCodeHandle == NULL) {\r
+ Status = EFI_OUT_OF_RESOURCES;\r
+ goto Exit;\r
+ }\r
+\r
+ mEndOpCodeHandle = HiiAllocateOpCodeHandle ();\r
+ if (mEndOpCodeHandle == NULL) {\r
Status = EFI_OUT_OF_RESOURCES;\r
goto Exit;\r
}\r
\r
+ //\r
+ // Create Hii Extend Label OpCode as the start opcode\r
+ //\r
+ mStartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (mStartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));\r
+ mStartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;\r
+\r
+ //\r
+ // Create Hii Extend Label OpCode as the end opcode\r
+ //\r
+ mEndLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (mEndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));\r
+ mEndLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;\r
+ mEndLabel->Number = LABEL_END;\r
+\r
InitializeStringDepository ();\r
\r
InitAllMenu (BmmCallbackInfo);\r
Status = EfiLibLocateProtocol (&gEfiLegacyBiosProtocolGuid, (VOID **) &LegacyBios);\r
if (!EFI_ERROR (Status)) {\r
RefreshUpdateData ();\r
+ mStartLabel->Number = FORM_BOOT_LEGACY_DEVICE_ID;\r
\r
//\r
// If LegacyBios Protocol is installed, add 3 tags about legacy boot option\r
// in BootOption form: legacy FD/HD/CD/NET/BEV\r
//\r
- CreateGotoOpCode (\r
+ HiiCreateGotoOpCode (\r
+ mStartOpCodeHandle,\r
FORM_SET_FD_ORDER_ID,\r
STRING_TOKEN (STR_FORM_SET_FD_ORDER_TITLE),\r
STRING_TOKEN (STR_FORM_SET_FD_ORDER_TITLE),\r
EFI_IFR_FLAG_CALLBACK,\r
- FORM_SET_FD_ORDER_ID,\r
- &gUpdateData\r
+ FORM_SET_FD_ORDER_ID\r
);\r
\r
- CreateGotoOpCode (\r
+ HiiCreateGotoOpCode (\r
+ mStartOpCodeHandle,\r
FORM_SET_HD_ORDER_ID,\r
STRING_TOKEN (STR_FORM_SET_HD_ORDER_TITLE),\r
STRING_TOKEN (STR_FORM_SET_HD_ORDER_TITLE),\r
EFI_IFR_FLAG_CALLBACK,\r
- FORM_SET_HD_ORDER_ID,\r
- &gUpdateData\r
+ FORM_SET_HD_ORDER_ID\r
);\r
\r
- CreateGotoOpCode (\r
+ HiiCreateGotoOpCode (\r
+ mStartOpCodeHandle,\r
FORM_SET_CD_ORDER_ID,\r
STRING_TOKEN (STR_FORM_SET_CD_ORDER_TITLE),\r
STRING_TOKEN (STR_FORM_SET_CD_ORDER_TITLE),\r
EFI_IFR_FLAG_CALLBACK,\r
- FORM_SET_CD_ORDER_ID,\r
- &gUpdateData\r
+ FORM_SET_CD_ORDER_ID\r
);\r
\r
- CreateGotoOpCode (\r
+ HiiCreateGotoOpCode (\r
+ mStartOpCodeHandle,\r
FORM_SET_NET_ORDER_ID,\r
STRING_TOKEN (STR_FORM_SET_NET_ORDER_TITLE),\r
STRING_TOKEN (STR_FORM_SET_NET_ORDER_TITLE),\r
EFI_IFR_FLAG_CALLBACK,\r
- FORM_SET_NET_ORDER_ID,\r
- &gUpdateData\r
+ FORM_SET_NET_ORDER_ID\r
);\r
\r
- CreateGotoOpCode (\r
+ HiiCreateGotoOpCode (\r
+ mStartOpCodeHandle,\r
FORM_SET_BEV_ORDER_ID,\r
STRING_TOKEN (STR_FORM_SET_BEV_ORDER_TITLE),\r
STRING_TOKEN (STR_FORM_SET_BEV_ORDER_TITLE),\r
EFI_IFR_FLAG_CALLBACK,\r
- FORM_SET_BEV_ORDER_ID,\r
- &gUpdateData\r
+ FORM_SET_BEV_ORDER_ID\r
);\r
-\r
- IfrLibUpdateForm (\r
+ \r
+ HiiUpdateForm (\r
BmmCallbackInfo->BmmHiiHandle,\r
&mBootMaintGuid,\r
FORM_BOOT_SETUP_ID,\r
- FORM_BOOT_LEGACY_DEVICE_ID,\r
- FALSE,\r
- &gUpdateData\r
+ mStartOpCodeHandle, // Label FORM_BOOT_LEGACY_DEVICE_ID\r
+ mEndOpCodeHandle // LABEL_END\r
);\r
}\r
\r
//\r
// Remove our IFR data from HII database\r
//\r
- gHiiDatabase->RemovePackageList (gHiiDatabase, BmmCallbackInfo->BmmHiiHandle);\r
- gHiiDatabase->RemovePackageList (gHiiDatabase, BmmCallbackInfo->FeHiiHandle);\r
+ HiiRemovePackages (BmmCallbackInfo->BmmHiiHandle);\r
+ HiiRemovePackages (BmmCallbackInfo->FeHiiHandle);\r
\r
CleanUpStringDepository ();\r
\r
FreeAllMenu ();\r
\r
- FreePool (gUpdateData.Data);\r
- gUpdateData.Data = NULL;\r
-\r
Exit:\r
+ if (mStartOpCodeHandle != NULL) {\r
+ HiiFreeOpCodeHandle (mStartOpCodeHandle);\r
+ }\r
+\r
+ if (mEndOpCodeHandle != NULL) {\r
+ HiiFreeOpCodeHandle (mEndOpCodeHandle);\r
+ }\r
+\r
if (BmmCallbackInfo->FeDriverHandle != NULL) {\r
gBS->UninstallMultipleProtocolInterfaces (\r
BmmCallbackInfo->FeDriverHandle,\r
//\r
NextListNode = AllocateZeroPool (sizeof (STRING_LIST_NODE));\r
ASSERT (NextListNode != NULL);\r
- HiiLibNewString (CallbackData->BmmHiiHandle, &(NextListNode->StringToken), L" ");\r
+ NextListNode->StringToken = HiiSetString (CallbackData->BmmHiiHandle, 0, L" ", NULL);\r
ASSERT (NextListNode->StringToken != 0);\r
\r
StringDepository->TotalNodeNumber++;\r
gFormBrowser2,\r
&CallbackData->BmmHiiHandle,\r
1,\r
- NULL,\r
+ &mBootMaintGuid,\r
0,\r
NULL,\r
&ActionRequest\r
gFormBrowser2,\r
&CallbackData->FeHiiHandle,\r
1,\r
- NULL,\r
+ &mFileExplorerGuid,\r
0,\r
NULL,\r
&ActionRequest\r
\r
**/\r
EFI_STATUS\r
+EFIAPI\r
BdsDeleteBootOption (\r
IN UINTN OptionNumber,\r
IN OUT UINT16 *BootOrder,\r