]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Add exit boot service event registry.
authoryshang1 <yshang1@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 27 Jun 2007 09:00:15 +0000 (09:00 +0000)
committeryshang1 <yshang1@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 27 Jun 2007 09:00:15 +0000 (09:00 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2801 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Library/UefiRuntimeLib/RuntimeLib.c

index 3cb11d89243864ee13124d57f1eaca1d0a8b7814..2b0155e6911ce3a01c5f4d460ec63069726931ba 100644 (file)
@@ -19,6 +19,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 ///\r
 \r
 STATIC EFI_EVENT              mEfiVirtualNotifyEvent;\r
 ///\r
 \r
 STATIC EFI_EVENT              mEfiVirtualNotifyEvent;\r
+STATIC EFI_EVENT              mEfiExitBootServicesEvent;\r
 STATIC BOOLEAN                mEfiGoneVirtual         = FALSE;\r
 STATIC BOOLEAN                mEfiAtRuntime           = FALSE;\r
 EFI_RUNTIME_SERVICES          *mRT;\r
 STATIC BOOLEAN                mEfiGoneVirtual         = FALSE;\r
 STATIC BOOLEAN                mEfiAtRuntime           = FALSE;\r
 EFI_RUNTIME_SERVICES          *mRT;\r
@@ -29,9 +30,10 @@ EFI_RUNTIME_SERVICES          *mRT;
   @param[in]  Event   The Event that is being processed\r
   @param[in]  Context Event Context\r
 **/\r
   @param[in]  Event   The Event that is being processed\r
   @param[in]  Context Event Context\r
 **/\r
+STATIC\r
 VOID\r
 EFIAPI\r
 VOID\r
 EFIAPI\r
-RuntimeDriverExitBootServices (\r
+RuntimeLibExitBootServicesEvent (\r
   IN EFI_EVENT        Event,\r
   IN VOID             *Context\r
   )\r
   IN EFI_EVENT        Event,\r
   IN VOID             *Context\r
   )\r
@@ -60,16 +62,6 @@ RuntimeLibVirtualNotifyEvent (
   IN VOID             *Context\r
   )\r
 {\r
   IN VOID             *Context\r
   )\r
 {\r
-  UINTN Index;\r
-  EFI_EVENT_NOTIFY  ChildNotifyEventHandler;\r
-\r
-  for (Index = 0;\r
-       _gDriverSetVirtualAddressMapEvent[Index] != NULL;\r
-       Index++) {\r
-    ChildNotifyEventHandler = _gDriverSetVirtualAddressMapEvent[Index];\r
-    ChildNotifyEventHandler (Event, NULL);\r
-  }\r
-\r
   //\r
   // Update global for Runtime Services Table and IO\r
   //\r
   //\r
   // Update global for Runtime Services Table and IO\r
   //\r
@@ -113,6 +105,16 @@ RuntimeDriverLibConstruct (
 \r
   ASSERT_EFI_ERROR (Status);\r
 \r
 \r
   ASSERT_EFI_ERROR (Status);\r
 \r
+  Status = gBS->CreateEvent (\r
+                  EVT_SIGNAL_EXIT_BOOT_SERVICES,\r
+                  TPL_NOTIFY,\r
+                  RuntimeLibExitBootServicesEvent,\r
+                  NULL,\r
+                  &mEfiExitBootServicesEvent\r
+                  );\r
+\r
+  ASSERT_EFI_ERROR (Status);\r
+\r
   return Status;\r
 }\r
 \r
   return Status;\r
 }\r
 \r
@@ -140,6 +142,9 @@ RuntimeDriverLibDeconstruct (
   Status = gBS->CloseEvent (mEfiVirtualNotifyEvent);\r
   ASSERT_EFI_ERROR (Status);\r
 \r
   Status = gBS->CloseEvent (mEfiVirtualNotifyEvent);\r
   ASSERT_EFI_ERROR (Status);\r
 \r
+  Status = gBS->CloseEvent (mEfiExitBootServicesEvent);\r
+  ASSERT_EFI_ERROR (Status);\r
+\r
   return Status;\r
 }\r
 \r
   return Status;\r
 }\r
 \r