]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Measure ExitBootServices failure case
authorczhang46 <czhang46@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 2 Aug 2012 06:34:20 +0000 (06:34 +0000)
committerczhang46 <czhang46@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 2 Aug 2012 06:34:20 +0000 (06:34 +0000)
Signed-off-by: Chao Zhang<chao.b.zhang@intel.com>
Reviewed-by: Dong Guo<guo.dong@intel.com>
Reviewed-by: Gao Liming<liming.gao@intel.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13581 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Core/Dxe/DxeMain.h
MdeModulePkg/Core/Dxe/DxeMain.inf
MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c
MdeModulePkg/Include/Guid/EventExitBootServiceFailed.h [new file with mode: 0644]
MdeModulePkg/MdeModulePkg.dec

index dedb84047f8e7e65e3f7e76dc7b1dba86f06b283..53b5f597810da3856a6d0dc5c01f3ae905e64f76 100644 (file)
@@ -63,6 +63,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Guid/MemoryAllocationHob.h>\r
 #include <Guid/EventLegacyBios.h>\r
 #include <Guid/EventGroup.h>\r
+#include <Guid/EventExitBootServiceFailed.h>\r
 #include <Guid/LoadModuleAtFixedAddress.h>\r
 #include <Guid/IdleLoopEvent.h>\r
 \r
index dda17aea04afc06b536eb785d7940f9625dd3f10..0fe0259f0614413120e1e0b7d0135bdbbca8f867 100644 (file)
   gEfiEventDxeDispatchGuid                      ## CONSUMES ## GUID\r
   gLoadFixedAddressConfigurationTableGuid       ## SOMETIMES_CONSUMES\r
   gIdleLoopEventGuid                            ## CONSUMES ## GUID\r
+  gEventExitBootServicesFailedGuid              ## CONSUMES ## GUID\r
 \r
 [Protocols]\r
   gEfiStatusCodeRuntimeProtocolGuid             ## SOMETIMES_CONSUMES\r
index 84a3583a6bcf60c13da1adf9fa9733b8798585b6..a6d10e680c2d79b7417b32bf7a34ef8cbfe0f867 100644 (file)
@@ -690,6 +690,10 @@ CoreExitBootServices (
   //\r
   Status = CoreTerminateMemoryMap (MapKey);\r
   if (EFI_ERROR (Status)) {\r
+    //\r
+    // Notify other drivers that ExitBootServices fail \r
+    //\r
+    CoreNotifySignalList (&gEventExitBootServicesFailedGuid);\r
     return Status;\r
   }\r
 \r
diff --git a/MdeModulePkg/Include/Guid/EventExitBootServiceFailed.h b/MdeModulePkg/Include/Guid/EventExitBootServiceFailed.h
new file mode 100644 (file)
index 0000000..aa34d45
--- /dev/null
@@ -0,0 +1,24 @@
+/** @file\r
+  GUID is the name of events used with ExitBootServices in order to be notified\r
+  when this ExitBootServices Call is failed.\r
+\r
+  Copyright (c) 2012, Intel Corporation. All rights reserved.<BR>\r
+  This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef __EVENT_EXIT_BOOT_FAILED_GUID_H__\r
+#define __EVENT_EXIT_BOOT_FAILED_GUID_H__\r
+                                             \r
+#define EVENT_GROUP_EXIT_BOOT_SERVICES_FAILED \\r
+  { 0x4f6c5507, 0x232f, 0x4787, { 0xb9, 0x5e, 0x72, 0xf8, 0x62, 0x49, 0xc, 0xb1 } }\r
+\r
+extern EFI_GUID gEventExitBootServicesFailedGuid;\r
+\r
+#endif\r
index ed0d94c683e1d352ec07732705b6c93a174e9cb4..bb58f794f1acb699e27db6472ffe0a0484ecdfb1 100644 (file)
   gRecoveryOnDataCdGuid              = { 0x5CAC0099, 0x0DC9, 0x48E5, { 0x80, 0x68, 0xBB, 0x95, 0xF5, 0x40, 0x0A, 0x9F }}\r
 \r
   ## Include/Guid/SmmLockBox.h\r
-  gEfiSmmLockBoxCommunicationGuid       = { 0x2a3cfebd, 0x27e8, 0x4d0a, { 0x8b, 0x79, 0xd6, 0x88, 0xc2, 0xa3, 0xe1, 0xc0 }}\r
+  gEfiSmmLockBoxCommunicationGuid    = { 0x2a3cfebd, 0x27e8, 0x4d0a, { 0x8b, 0x79, 0xd6, 0x88, 0xc2, 0xa3, 0xe1, 0xc0 }}\r
 \r
   ## Include/Guid/AcpiS3Context.h\r
   gEfiAcpiVariableGuid               = { 0xAF9FFD67, 0xEC10, 0x488A, { 0x9D, 0xFC, 0x6C, 0xBF, 0x5E, 0xE2, 0x2C, 0x2E }}\r
 \r
   ## Guid for Firmware Performance Data Table (FPDT) implementation.\r
   #  Include/Guid/FirmwarePerformance.h\r
-  gEfiFirmwarePerformanceGuid = { 0xc095791a, 0x3001, 0x47b2, { 0x80, 0xc9, 0xea, 0xc7, 0x31, 0x9f, 0x2f, 0xa4 }}\r
+  gEfiFirmwarePerformanceGuid        = { 0xc095791a, 0x3001, 0x47b2, { 0x80, 0xc9, 0xea, 0xc7, 0x31, 0x9f, 0x2f, 0xa4 }}\r
+\r
+  ## Include/Guid/ExitBootServiceFailed.h\r
+  gEventExitBootServicesFailedGuid   = { 0x4f6c5507, 0x232f, 0x4787, { 0xb9, 0x5e, 0x72, 0xf8, 0x62, 0x49, 0xc, 0xb1 } }\r
 \r
 [Ppis]\r
   ## Include/Ppi/AtaController.h\r