#include "IScsiImpl.h"\r
\r
EFI_GUID mVendorGuid = ISCSI_CONFIG_GUID;\r
+CHAR16 mVendorStorageName[] = L"ISCSI_CONFIG_IFR_NVDATA";\r
BOOLEAN mIScsiDeviceListUpdated = FALSE;\r
UINTN mNumberOfIScsiDevices = 0;\r
ISCSI_FORM_CALLBACK_INFO *mCallbackInfo = NULL;\r
//\r
// Retrive uncommitted data from Browser\r
//\r
- BufferSize = sizeof (ISCSI_CONFIG_IFR_NVDATA);\r
- IfrNvData = AllocateZeroPool (BufferSize);\r
- ASSERT (IfrNvData != NULL);\r
- Status = GetBrowserData (NULL, NULL, &BufferSize, (UINT8 *) IfrNvData);\r
- if (EFI_ERROR (Status)) {\r
- gBS->FreePool (IfrNvData);\r
- return Status;\r
+ IfrNvData = (ISCSI_CONFIG_IFR_NVDATA *) HiiGetBrowserData (&mVendorGuid, mVendorStorageName, sizeof (ISCSI_CONFIG_IFR_NVDATA));\r
+ if (IfrNvData == NULL) {\r
+ return EFI_NOT_FOUND;\r
}\r
+ \r
+ Status = EFI_SUCCESS;\r
\r
switch (QuestionId) {\r
case KEY_INITIATOR_NAME:\r
//\r
// Pass changed uncommitted data back to Form Browser\r
//\r
- BufferSize = sizeof (ISCSI_CONFIG_IFR_NVDATA);\r
- Status = SetBrowserData (NULL, NULL, BufferSize, (UINT8 *) IfrNvData, NULL);\r
+ HiiSetBrowserData (&mVendorGuid, mVendorStorageName, sizeof (ISCSI_CONFIG_IFR_NVDATA), (UINT8 *) IfrNvData, NULL);\r
}\r
\r
- gBS->FreePool (IfrNvData);\r
+ FreePool (IfrNvData);\r
return Status;\r
}\r
\r
ISCSI_CONFIG_FORM_ENTRY *ConfigFormEntry;\r
BOOLEAN EntryExisted;\r
EFI_STATUS Status;\r
- EFI_HII_UPDATE_DATA UpdateData;\r
EFI_SIMPLE_NETWORK_PROTOCOL *Snp;\r
CHAR16 PortString[128];\r
UINT16 FormIndex;\r
UINTN BufferSize;\r
-\r
+ VOID *StartOpCodeHandle;\r
+ VOID *EndOpCodeHandle;\r
+ EFI_IFR_GUID_LABEL *StartLabel;\r
+ EFI_IFR_GUID_LABEL *EndLabel;\r
\r
ConfigFormEntry = NULL;\r
EntryExisted = FALSE;\r
//\r
// Allocate space for creation of Buffer\r
//\r
- UpdateData.BufferSize = 0x1000;\r
- UpdateData.Data = AllocateZeroPool (0x1000);\r
- UpdateData.Offset = 0;\r
+\r
+ //\r
+ // Init OpCode Handle\r
+ //\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 = DEVICE_ENTRY_LABEL;\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_END;\r
\r
FormIndex = 0;\r
NET_LIST_FOR_EACH (Entry, &mIScsiConfigFormList) {\r
ConfigFormEntry = NET_LIST_USER_STRUCT (Entry, ISCSI_CONFIG_FORM_ENTRY, Link);\r
\r
- CreateGotoOpCode (\r
- FORMID_DEVICE_FORM,\r
- ConfigFormEntry->PortTitleToken,\r
- ConfigFormEntry->PortTitleHelpToken,\r
- EFI_IFR_FLAG_CALLBACK,\r
- (UINT16)(KEY_DEVICE_ENTRY_BASE + FormIndex),\r
- &UpdateData\r
+ HiiCreateGotoOpCode (\r
+ StartOpCodeHandle, // Container for dynamic created opcodes\r
+ FORMID_DEVICE_FORM, // Target Form ID\r
+ ConfigFormEntry->PortTitleToken, // Prompt text\r
+ ConfigFormEntry->PortTitleHelpToken, // Help text\r
+ EFI_IFR_FLAG_CALLBACK, // Question flag\r
+ (UINT16)(KEY_DEVICE_ENTRY_BASE + FormIndex) // Question ID\r
);\r
\r
FormIndex++;\r
}\r
\r
- IfrLibUpdateForm (\r
+ HiiUpdateForm (\r
mCallbackInfo->RegisteredHandle,\r
&mVendorGuid,\r
FORMID_MAIN_FORM,\r
- DEVICE_ENTRY_LABEL,\r
- FALSE,\r
- &UpdateData\r
+ StartOpCodeHandle, // Label DEVICE_ENTRY_LABEL\r
+ EndOpCodeHandle // LABEL_END\r
);\r
\r
- gBS->FreePool (UpdateData.Data);\r
+ HiiFreeOpCodeHandle (StartOpCodeHandle);\r
+ HiiFreeOpCodeHandle (EndOpCodeHandle);\r
\r
return EFI_SUCCESS;\r
}\r