EFI_STATUS Status;\r
EFI_INPUT_KEY Key;\r
\r
+ if (Action != EFI_BROWSER_ACTION_CHANGING && Action != EFI_BROWSER_ACTION_CHANGED) {\r
+ return EFI_UNSUPPORTED;\r
+ }\r
+\r
+ Private = ISCSI_FORM_CALLBACK_INFO_FROM_FORM_CALLBACK (This);\r
+ //\r
+ // Retrive uncommitted data from Browser\r
+ //\r
+ IfrNvData = AllocateZeroPool (sizeof (ISCSI_CONFIG_IFR_NVDATA));\r
+ ASSERT (IfrNvData != NULL);\r
+ if (!HiiGetBrowserData (&gIp4IScsiConfigGuid, mVendorStorageName, sizeof (ISCSI_CONFIG_IFR_NVDATA), (UINT8 *) IfrNvData)) {\r
+ FreePool (IfrNvData);\r
+ return EFI_NOT_FOUND;\r
+ }\r
+ Status = EFI_SUCCESS;\r
+\r
if (Action == EFI_BROWSER_ACTION_CHANGING) {\r
- Private = ISCSI_FORM_CALLBACK_INFO_FROM_FORM_CALLBACK (This);\r
- //\r
- // Retrive uncommitted data from Browser\r
- //\r
- IfrNvData = AllocateZeroPool (sizeof (ISCSI_CONFIG_IFR_NVDATA));\r
- ASSERT (IfrNvData != NULL);\r
- if (!HiiGetBrowserData (&gIp4IScsiConfigGuid, mVendorStorageName, sizeof (ISCSI_CONFIG_IFR_NVDATA), (UINT8 *) IfrNvData)) {\r
- FreePool (IfrNvData);\r
- return EFI_NOT_FOUND;\r
- }\r
- Status = EFI_SUCCESS;\r
+ if ((QuestionId >= KEY_DEVICE_ENTRY_BASE) && (QuestionId < (mNumberOfIScsiDevices + KEY_DEVICE_ENTRY_BASE))) {\r
+ //\r
+ // In case goto the device configuration form, update the device form title.\r
+ //\r
+ ConfigFormEntry = IScsiGetConfigFormEntryByIndex ((UINT32) (QuestionId - KEY_DEVICE_ENTRY_BASE));\r
+ ASSERT (ConfigFormEntry != NULL);\r
+\r
+ UnicodeSPrint (PortString, (UINTN) 128, L"Port %s", ConfigFormEntry->MacString);\r
+ DeviceFormTitleToken = (EFI_STRING_ID) STR_ISCSI_DEVICE_FORM_TITLE;\r
+ HiiSetString (Private->RegisteredHandle, DeviceFormTitleToken, PortString, NULL);\r
\r
- switch (QuestionId) {\r
+ IScsiConvertDeviceConfigDataToIfrNvData (ConfigFormEntry, IfrNvData);\r
+\r
+ Private->Current = ConfigFormEntry;\r
+ }\r
+ } else if (Action == EFI_BROWSER_ACTION_CHANGED) {\r
+ switch (QuestionId) { \r
case KEY_INITIATOR_NAME:\r
IScsiUnicodeStrToAsciiStr (IfrNvData->InitiatorName, IScsiName);\r
BufferSize = AsciiStrSize (IScsiName);\r
break;\r
\r
default:\r
- if ((QuestionId >= KEY_DEVICE_ENTRY_BASE) && (QuestionId < (mNumberOfIScsiDevices + KEY_DEVICE_ENTRY_BASE))) {\r
- //\r
- // In case goto the device configuration form, update the device form title.\r
- //\r
- ConfigFormEntry = IScsiGetConfigFormEntryByIndex ((UINT32) (QuestionId - KEY_DEVICE_ENTRY_BASE));\r
- ASSERT (ConfigFormEntry != NULL);\r
-\r
- UnicodeSPrint (PortString, (UINTN) 128, L"Port %s", ConfigFormEntry->MacString);\r
- DeviceFormTitleToken = (EFI_STRING_ID) STR_ISCSI_DEVICE_FORM_TITLE;\r
- HiiSetString (Private->RegisteredHandle, DeviceFormTitleToken, PortString, NULL);\r
-\r
- IScsiConvertDeviceConfigDataToIfrNvData (ConfigFormEntry, IfrNvData);\r
-\r
- Private->Current = ConfigFormEntry;\r
- }\r
-\r
break;\r
}\r
-\r
- if (!EFI_ERROR (Status)) {\r
- //\r
- // Pass changed uncommitted data back to Form Browser\r
- //\r
- HiiSetBrowserData (&gIp4IScsiConfigGuid, mVendorStorageName, sizeof (ISCSI_CONFIG_IFR_NVDATA), (UINT8 *) IfrNvData, NULL);\r
- }\r
- \r
- FreePool (IfrNvData);\r
-\r
- return Status;\r
}\r
\r
- //\r
- // All other action return unsupported.\r
- //\r
- return EFI_UNSUPPORTED;\r
+ if (!EFI_ERROR (Status)) {\r
+ //\r
+ // Pass changed uncommitted data back to Form Browser\r
+ //\r
+ HiiSetBrowserData (&gIp4IScsiConfigGuid, mVendorStorageName, sizeof (ISCSI_CONFIG_IFR_NVDATA), (UINT8 *) IfrNvData, NULL);\r
+ }\r
+ \r
+ FreePool (IfrNvData);\r
+ \r
+ return Status;\r
}\r
\r
/**\r