From 5adb8db71e333069509269f832b356adab0678c0 Mon Sep 17 00:00:00 2001 From: lgao4 Date: Wed, 2 Jun 2010 02:05:47 +0000 Subject: Per UEFI spec, FORM_OPEN/FORM_CLOSE Callback function should be called for each question in the form when this form opens or closes. Update SetupBrowser driver to call Callback function (FORM_OPEN/FORM_CLOSE) based on UEFI spec, and update all EDKII HII drivers to correctly handle FORM_OPEN and FORM_CLOSE call back. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10560 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Universal/Network/IScsiDxe/IScsiConfig.c | 7 +++++++ MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigNv.c | 7 +++++++ .../Universal/Network/VlanConfigDxe/VlanConfigImpl.c | 15 ++++++++++++--- 3 files changed, 26 insertions(+), 3 deletions(-) (limited to 'MdeModulePkg/Universal/Network') diff --git a/MdeModulePkg/Universal/Network/IScsiDxe/IScsiConfig.c b/MdeModulePkg/Universal/Network/IScsiDxe/IScsiConfig.c index 4eb76aca63..2f9806e20a 100644 --- a/MdeModulePkg/Universal/Network/IScsiDxe/IScsiConfig.c +++ b/MdeModulePkg/Universal/Network/IScsiDxe/IScsiConfig.c @@ -562,6 +562,13 @@ IScsiFormCallback ( EFI_STATUS Status; EFI_INPUT_KEY Key; + if ((Action == EFI_BROWSER_ACTION_FORM_OPEN) || (Action == EFI_BROWSER_ACTION_FORM_CLOSE)) { + // + // Do nothing for UEFI OPEN/CLOSE Action + // + return EFI_SUCCESS; + } + Private = ISCSI_FORM_CALLBACK_INFO_FROM_FORM_CALLBACK (This); // diff --git a/MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigNv.c b/MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigNv.c index d660e403ba..c0d27aac78 100644 --- a/MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigNv.c +++ b/MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigNv.c @@ -670,6 +670,13 @@ Ip4FormCallback ( EFI_STATUS Status; EFI_INPUT_KEY Key; + if ((Action == EFI_BROWSER_ACTION_FORM_OPEN) || (Action == EFI_BROWSER_ACTION_FORM_CLOSE)) { + // + // Do nothing for UEFI OPEN/CLOSE Action + // + return EFI_SUCCESS; + } + Ip4ConfigInstance = IP4_CONFIG_INSTANCE_FROM_CONFIG_ACCESS (This); IfrFormNvData = AllocateZeroPool (sizeof (IP4_CONFIG_IFR_NVDATA)); diff --git a/MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigImpl.c b/MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigImpl.c index 82ffcf2215..57fe339129 100644 --- a/MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigImpl.c +++ b/MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigImpl.c @@ -237,11 +237,20 @@ VlanCallback ( PrivateData = VLAN_CONFIG_PRIVATE_DATA_FROM_THIS (This); if (Action == EFI_BROWSER_ACTION_FORM_OPEN) { + if (QuestionId == VLAN_ADD_QUESTION_ID) { + // + // Update current VLAN list into Form when Form is opened. + // This will be done only in FORM_OPEN CallBack of question with VLAN_ADD_QUESTION_ID. + // + VlanUpdateForm (PrivateData); + } + return EFI_SUCCESS; + } + + if (Action == EFI_BROWSER_ACTION_FORM_CLOSE) { // - // On FORM_OPEN event, update current VLAN list + // Do nothing for UEFI FORM_CLOSE action // - VlanUpdateForm (PrivateData); - return EFI_SUCCESS; } -- cgit v1.2.3