EFI_STATUS Status;\r
BDS_COMMON_OPTION *Option;\r
LIST_ENTRY *Link;\r
- EFI_HII_UPDATE_DATA UpdateData;\r
CHAR16 *ExitData;\r
UINTN ExitDataSize;\r
EFI_STRING_ID Token;\r
EFI_HII_HANDLE HiiHandle;\r
EFI_BROWSER_ACTION_REQUEST ActionRequest;\r
UINTN TempSize;\r
+ VOID *StartOpCodeHandle;\r
+ VOID *EndOpCodeHandle;\r
+ EFI_IFR_GUID_LABEL *StartLabel;\r
+ EFI_IFR_GUID_LABEL *EndLabel;\r
+ CHAR16 *BootStringNumber;\r
+ UINTN DevicePathType;\r
\r
gOption = NULL;\r
InitializeListHead (&BdsBootOptionList);\r
//\r
// Allocate space for creation of UpdateData Buffer\r
//\r
- UpdateData.BufferSize = 0x1000;\r
- UpdateData.Offset = 0;\r
- UpdateData.Data = AllocateZeroPool (0x1000);\r
- ASSERT (UpdateData.Data != NULL);\r
+ StartOpCodeHandle = HiiAllocateOpCodeHandle ();\r
+ ASSERT (StartOpCodeHandle != NULL);\r
+\r
+ EndOpCodeHandle = HiiAllocateOpCodeHandle ();\r
+ ASSERT (EndOpCodeHandle != NULL);\r
+\r
+ //\r
+ // Create Hii Extend Label OpCode as the start opcode\r
+ //\r
+ StartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));\r
+ StartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;\r
+ StartLabel->Number = LABEL_BOOT_OPTION;\r
+\r
+ //\r
+ // Create Hii Extend Label OpCode as the end opcode\r
+ //\r
+ EndLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (EndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));\r
+ EndLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;\r
+ EndLabel->Number = LABEL_BOOT_OPTION_END;\r
\r
mKeyInput = 0;\r
\r
//\r
// Don't display the boot option marked as LOAD_OPTION_HIDDEN\r
//\r
- if (Option->Attribute & LOAD_OPTION_HIDDEN) {\r
+ if ((Option->Attribute & LOAD_OPTION_HIDDEN) != 0) {\r
continue;\r
}\r
-\r
+ \r
+ //\r
+ // Replace description string with UNI file string.\r
+ //\r
+ BootStringNumber = NULL;\r
+ \r
+ DevicePathType = BdsGetBootTypeFromDevicePath (Option->DevicePath);\r
+ \r
+ //\r
+ // store number string of boot option temporary.\r
+ //\r
+ \r
+ switch (DevicePathType) {\r
+ case BDS_EFI_ACPI_FLOPPY_BOOT:\r
+ BootStringNumber = Option->Description;\r
+ Option->Description = GetStringById (STRING_TOKEN (STR_DESCRIPTION_FLOPPY));\r
+ break;\r
+ case BDS_EFI_MEDIA_CDROM_BOOT:\r
+ BootStringNumber = Option->Description;\r
+ Option->Description = GetStringById (STRING_TOKEN (STR_DESCRIPTION_DVD));\r
+ break;\r
+ case BDS_EFI_MESSAGE_USB_DEVICE_BOOT:\r
+ BootStringNumber = Option->Description;\r
+ Option->Description = GetStringById (STRING_TOKEN (STR_DESCRIPTION_USB));\r
+ break;\r
+ case BDS_EFI_MESSAGE_SCSI_BOOT:\r
+ BootStringNumber = Option->Description;\r
+ Option->Description = GetStringById (STRING_TOKEN (STR_DESCRIPTION_SCSI));\r
+ break;\r
+ case BDS_EFI_MESSAGE_MISC_BOOT:\r
+ BootStringNumber = Option->Description;\r
+ Option->Description = GetStringById (STRING_TOKEN (STR_DESCRIPTION_MISC));\r
+ break;\r
+ case BDS_EFI_MESSAGE_MAC_BOOT:\r
+ BootStringNumber = Option->Description;\r
+ Option->Description = GetStringById (STRING_TOKEN (STR_DESCRIPTION_NETWORK));\r
+ break;\r
+ }\r
+ \r
+ ASSERT (Option->Description != NULL);\r
+ if (BootStringNumber != NULL) {\r
+ if (StrnCmp (BootStringNumber, L"0", 1) != 0) {\r
+ StrCat (Option->Description, L" ");\r
+ StrCat (Option->Description, BootStringNumber);\r
+ }\r
+ \r
+ FreePool (BootStringNumber);\r
+ }\r
+ \r
Token = HiiSetString (HiiHandle, 0, Option->Description, NULL);\r
\r
TempStr = DevicePathToStr (Option->DevicePath);\r
\r
HelpToken = HiiSetString (HiiHandle, 0, HelpString, NULL);\r
\r
- CreateActionOpCode (\r
+ HiiCreateActionOpCode (\r
+ StartOpCodeHandle,\r
mKeyInput,\r
Token,\r
HelpToken,\r
EFI_IFR_FLAG_CALLBACK,\r
- 0,\r
- &UpdateData\r
+ 0\r
);\r
}\r
\r
- IfrLibUpdateForm (\r
+ HiiUpdateForm (\r
HiiHandle,\r
&mBootManagerGuid,\r
BOOT_MANAGER_FORM_ID,\r
- LABEL_BOOT_OPTION,\r
- FALSE,\r
- &UpdateData\r
+ StartOpCodeHandle,\r
+ EndOpCodeHandle\r
);\r
- FreePool (UpdateData.Data);\r
+\r
+ HiiFreeOpCodeHandle (StartOpCodeHandle);\r
+ HiiFreeOpCodeHandle (EndOpCodeHandle);\r
\r
ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE;\r
Status = gFormBrowser2->SendForm (\r
gFormBrowser2,\r
&HiiHandle,\r
1,\r
- NULL,\r
+ &mBootManagerGuid,\r
0,\r
NULL,\r
&ActionRequest\r