]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Core/Dxe/Event/event.c
Fix an issue in page allocation.
[mirror_edk2.git] / EdkModulePkg / Core / Dxe / Event / event.c
index e8391419ab6768e3e2fc9a5c1f0bb7ee7ab2b422..3749657276e4de51d9df0ab247fee73a5886e8e6 100644 (file)
@@ -87,7 +87,7 @@ UINT32 mEventTable[] = {
   EFI_EVENT_TIMER | EFI_EVENT_NOTIFY_WAIT,\r
 };\r
 \r
-\r
+STATIC\r
 VOID\r
 CoreAcquireEventLock (\r
   VOID\r
@@ -111,7 +111,7 @@ Returns:
   CoreAcquireLock (&gEventQueueLock);\r
 }\r
 \r
-\r
+STATIC\r
 VOID\r
 CoreReleaseEventLock (\r
   VOID\r
@@ -168,50 +168,6 @@ Returns:
 }\r
 \r
 \r
-EFI_STATUS\r
-CoreShutdownEventServices (\r
-  VOID\r
-  )\r
-/*++\r
-\r
-Routine Description:\r
-\r
-  Register all runtime events to make sure they are still available after ExitBootService.\r
-\r
-Arguments:\r
-\r
-  None\r
-    \r
-Returns:\r
-\r
-  EFI_SUCCESS - Always return success.\r
-\r
---*/\r
-{\r
-  LIST_ENTRY        *Link;\r
-  IEVENT            *Event;\r
-\r
-  //\r
-  // The Runtime AP is required for the core to function!\r
-  //\r
-  ASSERT (gRuntime != NULL);\r
-\r
-  for (Link = mRuntimeEventList.ForwardLink; Link != &mRuntimeEventList; Link = Link->ForwardLink) {\r
-    Event = CR (Link, IEVENT, RuntimeLink, EVENT_SIGNATURE);\r
-    gRuntime->RegisterEvent (\r
-                gRuntime, \r
-                Event->Type, \r
-                Event->NotifyTpl, \r
-                Event->NotifyFunction, \r
-                Event->NotifyContext, \r
-                (VOID **)Event\r
-                );\r
-  }\r
-\r
-  return EFI_SUCCESS;\r
-}\r
-\r
-\r
 VOID\r
 CoreDispatchEventNotifies (\r
   IN EFI_TPL      Priority\r
@@ -276,8 +232,8 @@ Returns:
 }\r
 \r
 \r
-VOID\r
 STATIC\r
+VOID\r
 CoreNotifyEvent (\r
   IN  IEVENT      *Event\r
   )\r
@@ -363,7 +319,7 @@ Returns:
 static\r
 VOID\r
 EFIAPI\r
-EventNofitySignalAllNullEvent (\r
+EventNotifySignalAllNullEvent (\r
   IN EFI_EVENT                Event,\r
   IN VOID                     *Context\r
   )\r
@@ -426,14 +382,14 @@ Returns:
   //\r
   if (Type & EFI_EVENT_NOTIFY_SIGNAL_ALL) {\r
     Type &= ~EFI_EVENT_NOTIFY_SIGNAL_ALL;\r
-    Function = EventNofitySignalAllNullEvent;\r
+    Function = EventNotifySignalAllNullEvent;\r
   }\r
 \r
   //\r
   // Map the Tiano extensions Events to CreateEventEx form\r
   //\r
   if (Type == EFI_EVENT_SIGNAL_READY_TO_BOOT) {\r
-    GuidPtr = &gEfiEventReadToBootGuid;\r
+    GuidPtr = &gEfiEventReadyToBootGuid;\r
   } else if (Type == EFI_EVENT_SIGNAL_LEGACY_BOOT) {\r
     GuidPtr = &gEfiEventLegacyBootGuid\r
   }\r
@@ -559,7 +515,12 @@ Returns:
     //\r
     // Keep a list of all RT events so we can tell the RT AP.\r
     //\r
-    InsertTailList (&mRuntimeEventList, &IEvent->RuntimeLink);\r
+    IEvent->RuntimeData.Type           = Type;\r
+    IEvent->RuntimeData.NotifyTpl      = NotifyTpl;\r
+    IEvent->RuntimeData.NotifyFunction = NotifyFunction;\r
+    IEvent->RuntimeData.NotifyContext  = (VOID *) NotifyContext;\r
+    IEvent->RuntimeData.Event          = (EFI_EVENT *) IEvent;\r
+    InsertTailList (&gRuntime->EventHead, &IEvent->RuntimeData.Link);\r
   }\r
 \r
   CoreAcquireEventLock ();\r
@@ -835,11 +796,11 @@ Returns:
   //\r
   // If the event is queued somewhere, remove it\r
   //\r
-\r
-  if (Event->RuntimeLink.ForwardLink != NULL) {\r
-    RemoveEntryList (&Event->RuntimeLink);\r
+  \r
+  if (Event->RuntimeData.Link.ForwardLink != NULL) {\r
+    RemoveEntryList (&Event->RuntimeData.Link);\r
   }\r
-\r
+  \r
   if (Event->NotifyLink.ForwardLink != NULL) {\r
     RemoveEntryList (&Event->NotifyLink);\r
   }\r