These changes are to support notify callbacks when enter/exit
setup menu, since some driver may need to hook setup enter/exit
points to do something.

We will signal setup enter/exit events for all setup menu
enter/exit cases.Then the module which pay attention to these
events can execute the callback.

Cc: Eric Dong <eric.d...@intel.com>
Cc: Liming Gao <liming....@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Dandan Bi <dandan...@intel.com>
---
 .../BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf   | 4 +++-
 MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootOption.c     | 8 +++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git 
a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
 
b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
index def923b977d..e716e053777 100644
--- 
a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
+++ 
b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
@@ -1,9 +1,9 @@
 ## @file
 #  Boot Maintenance Manager Library used by UiApp.
 #
-#  Copyright (c) 2011 - 2017, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
 #  This program and the accompanying materials are licensed and made available 
under
 #  the terms and conditions of the BSD License that accompanies this 
distribution.
 #  The full text of the license may be found at
 #  http://opensource.org/licenses/bsd-license.php.
 #  
@@ -80,10 +80,12 @@
                                                 ## SOMETIMES_CONSUMES ## 
Variable:L"ConOut" (The device path of console out device)
                                                 ## SOMETIMES_CONSUMES ## 
Variable:L"ErrOut" (The device path of error out device)
   gEfiIfrTianoGuid                              ## SOMETIMES_CONSUMES ## GUID 
(Extended IFR Guid Opcode)
   gEfiIfrFrontPageGuid                          ## CONSUMES ## GUID
   gEfiIfrBootMaintenanceGuid                    ## CONSUMES ## GUID
+  gEdkiiSetupEnterGuid                          ## CONSUMES ## GUID
+  gEdkiiSetupExitGuid                           ## CONSUMES ## GUID
  
 [Protocols]
   gEfiSimpleFileSystemProtocolGuid              ## CONSUMES
   gEfiLoadFileProtocolGuid                      ## CONSUMES
   gEfiHiiConfigAccessProtocolGuid               ## CONSUMES
diff --git a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootOption.c 
b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootOption.c
index 8680a51d78c..e3363b469ce 100644
--- a/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootOption.c
+++ b/MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootOption.c
@@ -3,11 +3,11 @@
 
   Include file system navigation, system handle selection
 
   Boot option manipulation
 
-Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>
 This program and the accompanying materials
 are licensed and made available under the terms and conditions of the BSD 
License
 which accompanies this distribution.  The full text of the license may be 
found at
 http://opensource.org/licenses/bsd-license.php
 
@@ -926,18 +926,24 @@ BootFromFile (
       );
     //
     // Since current no boot from removable media directly is allowed */
     //
     gST->ConOut->ClearScreen (gST->ConOut);
+
+    //
+    // Signal exit setup event berfore reset the system or boot to another 
boot option.
+    //
+    EfiEventGroupSignal(&gEdkiiSetupExitGuid);
     //
     // Check whether need to reset system.
     //
     BmmSetupResetReminder ();
 
     BmmSetConsoleMode (FALSE);
     EfiBootManagerBoot (&BootOption);
     BmmSetConsoleMode (TRUE);
+    EfiEventGroupSignal(&gEdkiiSetupEnterGuid);
 
     FreePool(FileName);
 
     EfiBootManagerFreeLoadOption (&BootOption);
   }
-- 
2.14.3.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to