summaryrefslogtreecommitdiffstats
path: root/IntelFrameworkPkg
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2016-03-22 17:07:14 +0100
committerLaszlo Ersek <lersek@redhat.com>2016-03-23 12:05:45 +0100
commit6212b9481d822a6765f8cd264ceb8454291948bd (patch)
tree9cd95725cccd522dedfbe9b136e4086c207d69c8 /IntelFrameworkPkg
parentff55dd3befb43cbbf6c69513eadada79c8e984f9 (diff)
downloadedk2-6212b9481d822a6765f8cd264ceb8454291948bd.tar.gz
edk2-6212b9481d822a6765f8cd264ceb8454291948bd.tar.bz2
edk2-6212b9481d822a6765f8cd264ceb8454291948bd.zip
IntelFrameworkPkg/FrameworkUefiLib: implement EfiEventGroupSignal
This patch follows the implementation seen in MdePkg's UefiLib instance, so that FrameworkUefiLib also covers the UefiLib.h library class header completely. Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Jeff Fan <jeff.fan@intel.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Suggested-by: Jordan Justen <jordan.l.justen@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
Diffstat (limited to 'IntelFrameworkPkg')
-rw-r--r--IntelFrameworkPkg/Library/FrameworkUefiLib/UefiLib.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/IntelFrameworkPkg/Library/FrameworkUefiLib/UefiLib.c b/IntelFrameworkPkg/Library/FrameworkUefiLib/UefiLib.c
index 9f73fb52ed..e198b729a3 100644
--- a/IntelFrameworkPkg/Library/FrameworkUefiLib/UefiLib.c
+++ b/IntelFrameworkPkg/Library/FrameworkUefiLib/UefiLib.c
@@ -282,6 +282,49 @@ EfiNamedEventSignal (
return Status;
}
+/**
+ Signals an event group by placing a new event in the group temporarily and
+ signaling it.
+
+ @param[in] EventGroup Supplies the unique identifier of the event
+ group to signal.
+
+ @retval EFI_SUCCESS The event group was signaled successfully.
+ @retval EFI_INVALID_PARAMETER EventGroup is NULL.
+ @return Error codes that report problems about event
+ creation or signaling.
+**/
+EFI_STATUS
+EFIAPI
+EfiEventGroupSignal (
+ IN CONST EFI_GUID *EventGroup
+ )
+{
+ EFI_STATUS Status;
+ EFI_EVENT Event;
+
+ if (EventGroup == NULL) {
+ return EFI_INVALID_PARAMETER;
+ }
+
+ Status = gBS->CreateEventEx (
+ EVT_NOTIFY_SIGNAL,
+ TPL_CALLBACK,
+ InternalEmptyFunction,
+ NULL,
+ EventGroup,
+ &Event
+ );
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ Status = gBS->SignalEvent (Event);
+ gBS->CloseEvent (Event);
+
+ return Status;
+}
+
/**
Returns the current TPL.