summaryrefslogtreecommitdiffstats
path: root/EdkModulePkg/Core/Dxe/Event/event.c
diff options
context:
space:
mode:
Diffstat (limited to 'EdkModulePkg/Core/Dxe/Event/event.c')
-rw-r--r--EdkModulePkg/Core/Dxe/Event/event.c59
1 files changed, 10 insertions, 49 deletions
diff --git a/EdkModulePkg/Core/Dxe/Event/event.c b/EdkModulePkg/Core/Dxe/Event/event.c
index ade810c5c1..08cff427ff 100644
--- a/EdkModulePkg/Core/Dxe/Event/event.c
+++ b/EdkModulePkg/Core/Dxe/Event/event.c
@@ -168,50 +168,6 @@ Returns:
}
-EFI_STATUS
-CoreShutdownEventServices (
- VOID
- )
-/*++
-
-Routine Description:
-
- Register all runtime events to make sure they are still available after ExitBootService.
-
-Arguments:
-
- None
-
-Returns:
-
- EFI_SUCCESS - Always return success.
-
---*/
-{
- LIST_ENTRY *Link;
- IEVENT *Event;
-
- //
- // The Runtime AP is required for the core to function!
- //
- ASSERT (gRuntime != NULL);
-
- for (Link = mRuntimeEventList.ForwardLink; Link != &mRuntimeEventList; Link = Link->ForwardLink) {
- Event = CR (Link, IEVENT, RuntimeLink, EVENT_SIGNATURE);
- gRuntime->RegisterEvent (
- gRuntime,
- Event->Type,
- Event->NotifyTpl,
- Event->NotifyFunction,
- Event->NotifyContext,
- (VOID **)Event
- );
- }
-
- return EFI_SUCCESS;
-}
-
-
VOID
CoreDispatchEventNotifies (
IN EFI_TPL Priority
@@ -559,7 +515,12 @@ Returns:
//
// Keep a list of all RT events so we can tell the RT AP.
//
- InsertTailList (&mRuntimeEventList, &IEvent->RuntimeLink);
+ IEvent->RuntimeData.Type = Type;
+ IEvent->RuntimeData.NotifyTpl = NotifyTpl;
+ IEvent->RuntimeData.NotifyFunction = NotifyFunction;
+ IEvent->RuntimeData.NotifyContext = (VOID *) NotifyContext;
+ IEvent->RuntimeData.Event = (EFI_EVENT *) IEvent;
+ InsertTailList (&gRuntime->EventHead, &IEvent->RuntimeData.Link);
}
CoreAcquireEventLock ();
@@ -835,11 +796,11 @@ Returns:
//
// If the event is queued somewhere, remove it
//
-
- if (Event->RuntimeLink.ForwardLink != NULL) {
- RemoveEntryList (&Event->RuntimeLink);
+
+ if (Event->RuntimeData.Link.ForwardLink != NULL) {
+ RemoveEntryList (&Event->RuntimeData.Link);
}
-
+
if (Event->NotifyLink.ForwardLink != NULL) {
RemoveEntryList (&Event->NotifyLink);
}