mirror of https://github.com/acidanthera/audk.git
MdePkg/UefiLib: introduce EfiEventGroupSignal
This is a small convenience function that eases signaling an event group (identified by GUID). An example where it can be used is Platform BDS signaling the End-of-DXE event group. The naming follows EfiNamedEventSignal(). The patch modifies the library class header, and updates the most commonly used library instance at once. Other library instances in the edk2 tree will be adapted in the following patches. Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <liming.gao@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>
This commit is contained in:
parent
ca8f50e88e
commit
772fb7cb13
|
@ -223,6 +223,24 @@ EfiNamedEventSignal (
|
|||
IN CONST EFI_GUID *Name
|
||||
);
|
||||
|
||||
/**
|
||||
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
|
||||
);
|
||||
|
||||
/**
|
||||
Returns the current TPL.
|
||||
|
||||
|
|
|
@ -304,6 +304,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.
|
||||
|
||||
|
|
Loading…
Reference in New Issue