EFI_EVENT_TIMER | EFI_EVENT_NOTIFY_WAIT,\r
};\r
\r
-\r
+STATIC\r
VOID\r
CoreAcquireEventLock (\r
VOID\r
CoreAcquireLock (&gEventQueueLock);\r
}\r
\r
-\r
+STATIC\r
VOID\r
CoreReleaseEventLock (\r
VOID\r
}\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
}\r
\r
\r
-VOID\r
STATIC\r
+VOID\r
CoreNotifyEvent (\r
IN IEVENT *Event\r
)\r
static\r
VOID\r
EFIAPI\r
-EventNofitySignalAllNullEvent (\r
+EventNotifySignalAllNullEvent (\r
IN EFI_EVENT Event,\r
IN VOID *Context\r
)\r
//\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
//\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
//\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