return Status;\r
}\r
\r
+/**\r
+ Signals an event group by placing a new event in the group temporarily and\r
+ signaling it.\r
+\r
+ @param[in] EventGroup Supplies the unique identifier of the event\r
+ group to signal.\r
+\r
+ @retval EFI_SUCCESS The event group was signaled successfully.\r
+ @retval EFI_INVALID_PARAMETER EventGroup is NULL.\r
+ @return Error codes that report problems about event\r
+ creation or signaling.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+EfiEventGroupSignal (\r
+ IN CONST EFI_GUID *EventGroup\r
+ )\r
+{\r
+ EFI_STATUS Status;\r
+ EFI_EVENT Event;\r
+\r
+ if (EventGroup == NULL) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
+ Status = gBS->CreateEventEx (\r
+ EVT_NOTIFY_SIGNAL,\r
+ TPL_CALLBACK,\r
+ InternalEmptyFunction,\r
+ NULL,\r
+ EventGroup,\r
+ &Event\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
+\r
+ Status = gBS->SignalEvent (Event);\r
+ gBS->CloseEvent (Event);\r
+\r
+ return Status;\r
+}\r
+\r
/** \r
Returns the current TPL.\r
\r
return NULL;\r
}\r
\r
+/**\r
+ An empty function to pass error checking of CreateEventEx ().\r
+\r
+ This empty function ensures that EVT_NOTIFY_SIGNAL_ALL is error\r
+ checked correctly since it is now mapped into CreateEventEx() in UEFI 2.0.\r
+\r
+ @param Event Event whose notification function is being invoked.\r
+ @param Context The pointer to the notification function's context,\r
+ which is implementation-dependent.\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+InternalEmptyFunction (\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
+ )\r
+{\r
+}\r