}\r
break;\r
\r
- case 0x1237:\r
- //\r
- // User press "Exit now", request Browser to exit\r
- //\r
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_EXIT;\r
- break;\r
-\r
- case 0x1238:\r
- //\r
- // User press "Save now", request Browser to save the uncommitted data.\r
- //\r
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_SUBMIT;\r
- break;\r
-\r
- case 0x1241:\r
- case 0x1246:\r
- //\r
- // User press "Submit current form and Exit now", request Browser to submit current form and exit\r
- //\r
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT;\r
- break;\r
-\r
- case 0x1242:\r
- //\r
- // User press "Discard current form now", request Browser to discard the uncommitted data.\r
- //\r
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD;\r
- break;\r
-\r
- case 0x1243:\r
- //\r
- // User press "Submit current form now", request Browser to save the uncommitted data.\r
- //\r
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;\r
- break;\r
-\r
- case 0x1244:\r
- case 0x1245:\r
- //\r
- // User press "Discard current form and Exit now", request Browser to discard the uncommitted data and exit.\r
- //\r
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT;\r
- break;\r
-\r
case 0x2000:\r
//\r
// Only used to update the state.\r
}\r
break;\r
\r
+ case EFI_BROWSER_ACTION_CHANGED:\r
+ switch (QuestionId) {\r
+ case 0x1237:\r
+ //\r
+ // User press "Exit now", request Browser to exit\r
+ //\r
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_EXIT;\r
+ break;\r
+ \r
+ case 0x1238:\r
+ //\r
+ // User press "Save now", request Browser to save the uncommitted data.\r
+ //\r
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_SUBMIT;\r
+ break;\r
+ \r
+ case 0x1241:\r
+ case 0x1246:\r
+ //\r
+ // User press "Submit current form and Exit now", request Browser to submit current form and exit\r
+ //\r
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT;\r
+ break;\r
+ \r
+ case 0x1242:\r
+ //\r
+ // User press "Discard current form now", request Browser to discard the uncommitted data.\r
+ //\r
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD;\r
+ break;\r
+ \r
+ case 0x1243:\r
+ //\r
+ // User press "Submit current form now", request Browser to save the uncommitted data.\r
+ //\r
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;\r
+ break;\r
+ \r
+ case 0x1244:\r
+ case 0x1245:\r
+ //\r
+ // User press "Discard current form and Exit now", request Browser to discard the uncommitted data and exit.\r
+ //\r
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT;\r
+ break;\r
+ \r
+ default:\r
+ break;\r
+ }\r
+ break;\r
+\r
default:\r
Status = EFI_UNSUPPORTED;\r
break;\r
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
\r
subtitle text = STRING_TOKEN(STR_NULL); \r
\r
- goto FORMID_DEVICE_FORM, \r
- prompt = STRING_TOKEN (STR_SAVE_CHANGES),\r
- help = STRING_TOKEN (STR_SAVE_CHANGES),\r
- flags = INTERACTIVE,\r
- key = KEY_SAVE_CHANGES;\r
-\r
+ text\r
+ help = STRING_TOKEN (STR_SAVE_CHANGES),\r
+ text = STRING_TOKEN (STR_SAVE_CHANGES),\r
+ text = STRING_TOKEN (STR_SAVE_CHANGES),\r
+ flags = INTERACTIVE,\r
+ key = KEY_SAVE_CHANGES;\r
+ \r
goto FORMID_MAIN_FORM, \r
prompt = STRING_TOKEN (STR_RETURN_MAIN_FORM), \r
help = STRING_TOKEN (STR_RETURN_MAIN_FORM),\r
endif;\r
\r
subtitle text = STRING_TOKEN(STR_NULL);\r
-\r
- goto FORMID_DEVICE_FORM,\r
- prompt = STRING_TOKEN (STR_SAVE_CHANGES),\r
- help = STRING_TOKEN (STR_SAVE_CHANGES),\r
- flags = INTERACTIVE,\r
- key = KEY_SAVE_CHANGES;\r
-\r
+ \r
+ text\r
+ help = STRING_TOKEN(STR_SAVE_CHANGES),\r
+ text = STRING_TOKEN(STR_SAVE_CHANGES),\r
+ text = STRING_TOKEN(STR_SAVE_CHANGES),\r
+ flags = INTERACTIVE,\r
+ key = KEY_SAVE_CHANGES;\r
+ \r
endform;\r
\r
endformset;\r
EFI_STATUS Status;\r
EFI_INPUT_KEY Key;\r
\r
- if (Action == EFI_BROWSER_ACTION_CHANGING) {\r
+ if (Action == EFI_BROWSER_ACTION_CHANGED) {\r
Ip4ConfigInstance = IP4_CONFIG_INSTANCE_FROM_CONFIG_ACCESS (This);\r
\r
IfrFormNvData = AllocateZeroPool (sizeof (IP4_CONFIG_IFR_NVDATA));\r
return EFI_SUCCESS;\r
}\r
\r
- if (Action == EFI_BROWSER_ACTION_CHANGING) {\r
+ if ((Action != EFI_BROWSER_ACTION_CHANGED) && (Action != EFI_BROWSER_ACTION_CHANGING)) {\r
//\r
- // Get Browser data\r
+ // All other action return unsupported.\r
//\r
- Configuration = AllocateZeroPool (sizeof (VLAN_CONFIGURATION));\r
- ASSERT (Configuration != NULL);\r
- HiiGetBrowserData (&gVlanConfigFormSetGuid, mVlanStorageName, sizeof (VLAN_CONFIGURATION), (UINT8 *) Configuration);\r
+ return EFI_UNSUPPORTED;\r
+ }\r
+\r
+ //\r
+ // Get Browser data\r
+ //\r
+ Configuration = AllocateZeroPool (sizeof (VLAN_CONFIGURATION));\r
+ ASSERT (Configuration != NULL);\r
+ HiiGetBrowserData (&gVlanConfigFormSetGuid, mVlanStorageName, sizeof (VLAN_CONFIGURATION), (UINT8 *) Configuration);\r
\r
- VlanConfig = PrivateData->VlanConfig;\r
+ VlanConfig = PrivateData->VlanConfig;\r
\r
+ if (Action == EFI_BROWSER_ACTION_CHANGED) {\r
switch (QuestionId) {\r
case VLAN_ADD_QUESTION_ID:\r
//\r
ZeroMem (Configuration->VlanList, MAX_VLAN_NUMBER);\r
break;\r
\r
+ default:\r
+ break;\r
+ }\r
+ } else if (Action == EFI_BROWSER_ACTION_CHANGING) {\r
+ switch (QuestionId) {\r
case VLAN_UPDATE_QUESTION_ID:\r
//\r
// Update current VLAN list into Form.\r
default:\r
break;\r
}\r
-\r
- HiiSetBrowserData (&gVlanConfigFormSetGuid, mVlanStorageName, sizeof (VLAN_CONFIGURATION), (UINT8 *) Configuration, NULL);\r
- FreePool (Configuration);\r
- return EFI_SUCCESS;\r
}\r
-\r
- //\r
- // All other action return unsupported.\r
- //\r
- return EFI_UNSUPPORTED;\r
+ \r
+ HiiSetBrowserData (&gVlanConfigFormSetGuid, mVlanStorageName, sizeof (VLAN_CONFIGURATION), (UINT8 *) Configuration, NULL);\r
+ FreePool (Configuration);\r
+ return EFI_SUCCESS;\r
}\r
\r
\r
EFI_INPUT_KEY Key;\r
PLAT_OVER_MNGR_DATA *FakeNvData;\r
\r
+ if ((Action != EFI_BROWSER_ACTION_CHANGING) && (Action != EFI_BROWSER_ACTION_CHANGED)) {\r
+ //\r
+ // All other action return unsupported.\r
+ //\r
+ return EFI_UNSUPPORTED;\r
+ }\r
+\r
+ Private = EFI_CALLBACK_INFO_FROM_THIS (This);\r
+ FakeNvData = &Private->FakeNvData;\r
+ if (!HiiGetBrowserData (&gPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *) FakeNvData)) {\r
+ return EFI_NOT_FOUND;\r
+ }\r
+\r
if (Action == EFI_BROWSER_ACTION_CHANGING) {\r
- Private = EFI_CALLBACK_INFO_FROM_THIS (This);\r
- FakeNvData = &Private->FakeNvData;\r
- if (!HiiGetBrowserData (&gPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *) FakeNvData)) {\r
- return EFI_NOT_FOUND;\r
+ if (Value == NULL) {\r
+ return EFI_INVALID_PARAMETER;\r
}\r
-\r
- if (KeyValue == KEY_VALUE_DEVICE_REFRESH ||\r
- KeyValue == KEY_VALUE_DEVICE_FILTER ||\r
- KeyValue == KEY_VALUE_DRIVER_GOTO_PREVIOUS\r
- ) {\r
+ \r
+ if (KeyValue == KEY_VALUE_DRIVER_GOTO_PREVIOUS) {\r
UpdateDeviceSelectPage (Private, KeyValue, FakeNvData);\r
//\r
// Update page title string\r
}\r
}\r
\r
- if (KeyValue == KEY_VALUE_ORDER_SAVE_AND_EXIT) {\r
- Status = CommintChanges (Private, KeyValue, FakeNvData);\r
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_SUBMIT;\r
- if (EFI_ERROR (Status)) {\r
- CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, L"Single Override Info too large, Saving Error!", NULL);\r
- return EFI_DEVICE_ERROR;\r
- }\r
- }\r
-\r
if (KeyValue == KEY_VALUE_DEVICE_CLEAR) {\r
//\r
// Deletes all environment variable(s) that contain the override mappings info\r
Status = SaveOverridesMapping (&mMappingDataBase);\r
UpdateDeviceSelectPage (Private, KeyValue, FakeNvData);\r
}\r
- //\r
- // Pass changed uncommitted data back to Form Browser\r
- //\r
- HiiSetBrowserData (&gPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *) FakeNvData, NULL);\r
+ } else if (Action == EFI_BROWSER_ACTION_CHANGED) {\r
+ switch (KeyValue) {\r
+ case KEY_VALUE_DEVICE_REFRESH:\r
+ case KEY_VALUE_DEVICE_FILTER:\r
+ UpdateDeviceSelectPage (Private, KeyValue, FakeNvData);\r
+ //\r
+ // Update page title string\r
+ //\r
+ NewStringToken = STRING_TOKEN (STR_TITLE);\r
+ if (HiiSetString (Private->RegisteredHandle, NewStringToken, L"First, Select the controller by device path", NULL) == 0) {\r
+ ASSERT (FALSE);\r
+ }\r
+ break;\r
+ \r
+ case KEY_VALUE_ORDER_SAVE_AND_EXIT:\r
+ Status = CommintChanges (Private, KeyValue, FakeNvData);\r
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_SUBMIT;\r
+ if (EFI_ERROR (Status)) {\r
+ CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, L"Single Override Info too large, Saving Error!", NULL);\r
+ return EFI_DEVICE_ERROR;\r
+ }\r
+ break;\r
\r
- return EFI_SUCCESS;\r
- } \r
+ default:\r
+ break;\r
+ }\r
+ }\r
\r
//\r
- // All other action return unsupported.\r
+ // Pass changed uncommitted data back to Form Browser\r
//\r
- return EFI_UNSUPPORTED;\r
+ HiiSetBrowserData (&gPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *) FakeNvData, NULL);\r
+\r
+ return EFI_SUCCESS;\r
}\r
\r
/**\r
\r
subtitle text = STRING_TOKEN(STR_NULL_STRING);\r
\r
- goto FORM_ID_ORDER,\r
- prompt = STRING_TOKEN(STR_SAVE_AND_EXIT),\r
- help = STRING_TOKEN(STR_NULL_STRING),\r
- flags = INTERACTIVE | RESET_REQUIRED,\r
- key = KEY_VALUE_ORDER_SAVE_AND_EXIT;\r
+ text\r
+ help = STRING_TOKEN (STR_NULL_STRING),\r
+ text = STRING_TOKEN (STR_SAVE_AND_EXIT),\r
+ text = STRING_TOKEN (STR_SAVE_AND_EXIT),\r
+ flags = INTERACTIVE | RESET_REQUIRED,\r
+ key = KEY_VALUE_ORDER_SAVE_AND_EXIT;\r
endform;\r
\r
endformset;\r
&ActionRequest\r
);\r
if (!EFI_ERROR (Status)) {\r
- switch (ActionRequest) {\r
- case EFI_BROWSER_ACTION_REQUEST_RESET:\r
- gResetRequired = TRUE;\r
- Selection->Action = UI_ACTION_EXIT;\r
- break;\r
+ //\r
+ // Only for EFI_BROWSER_ACTION_CHANGED need to handle this ActionRequest.\r
+ //\r
+ if (Action == EFI_BROWSER_ACTION_CHANGED) {\r
+ switch (ActionRequest) {\r
+ case EFI_BROWSER_ACTION_REQUEST_RESET:\r
+ gResetRequired = TRUE;\r
+ Selection->Action = UI_ACTION_EXIT;\r
+ break;\r
\r
- case EFI_BROWSER_ACTION_REQUEST_SUBMIT:\r
- SubmitFormIsRequired = TRUE;\r
- Selection->Action = UI_ACTION_EXIT;\r
- break;\r
+ case EFI_BROWSER_ACTION_REQUEST_SUBMIT:\r
+ SubmitFormIsRequired = TRUE;\r
+ Selection->Action = UI_ACTION_EXIT;\r
+ break;\r
\r
- case EFI_BROWSER_ACTION_REQUEST_EXIT:\r
- Selection->Action = UI_ACTION_EXIT;\r
- break;\r
+ case EFI_BROWSER_ACTION_REQUEST_EXIT:\r
+ Selection->Action = UI_ACTION_EXIT;\r
+ break;\r
\r
- case EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT:\r
- SubmitFormIsRequired = TRUE;\r
- SettingLevel = FormLevel;\r
- NeedExit = TRUE;\r
- break;\r
+ case EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT:\r
+ SubmitFormIsRequired = TRUE;\r
+ SettingLevel = FormLevel;\r
+ NeedExit = TRUE;\r
+ break;\r
\r
- case EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT:\r
- DiscardFormIsRequired = TRUE;\r
- SettingLevel = FormLevel; \r
- NeedExit = TRUE;\r
- break;\r
+ case EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT:\r
+ DiscardFormIsRequired = TRUE;\r
+ SettingLevel = FormLevel; \r
+ NeedExit = TRUE;\r
+ break;\r
\r
- case EFI_BROWSER_ACTION_REQUEST_FORM_APPLY:\r
- SubmitFormIsRequired = TRUE;\r
- SettingLevel = FormLevel;\r
- break;\r
+ case EFI_BROWSER_ACTION_REQUEST_FORM_APPLY:\r
+ SubmitFormIsRequired = TRUE;\r
+ SettingLevel = FormLevel;\r
+ break;\r
\r
- case EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD:\r
- DiscardFormIsRequired = TRUE;\r
- SettingLevel = FormLevel;\r
- break;\r
+ case EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD:\r
+ DiscardFormIsRequired = TRUE;\r
+ SettingLevel = FormLevel;\r
+ break;\r
\r
- default:\r
- break;\r
+ default:\r
+ break;\r
+ }\r
}\r
\r
//\r
}\r
}\r
\r
- if ((Status == EFI_SUCCESS) && (Statement->Operand != EFI_IFR_REF_OP)) {\r
+ if (!EFI_ERROR (Status) && Statement->Operand != EFI_IFR_REF_OP) {\r
ProcessCallBackFunction(Selection, Statement, EFI_BROWSER_ACTION_CHANGED, FALSE);\r
}\r
}\r