REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4496
This change adds a new interface for the delayed dispatch PPI. This new addition allows functional components relying on delayed dispatch callbacks to be managed/dispatched with definitive order. The full defintion has been added into PI spec. Cc: Michael D Kinney <michael.d.kin...@intel.com> Cc: Liming Gao <gaolim...@byosoft.com.cn> Cc: Zhiguang Liu <zhiguang....@intel.com> Co-authored-by: Mike Turner <mik...@pobox.com> Signed-off-by: Kun Qin <kuqi...@gmail.com> --- Notes: v2: - Fixed PI spec version number to v1.8 [Liming] MdePkg/Include/Ppi/DelayedDispatch.h | 26 ++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/MdePkg/Include/Ppi/DelayedDispatch.h b/MdePkg/Include/Ppi/DelayedDispatch.h index 098d57758551..0efcfdbfced6 100644 --- a/MdePkg/Include/Ppi/DelayedDispatch.h +++ b/MdePkg/Include/Ppi/DelayedDispatch.h @@ -1,5 +1,5 @@ /** @file - EFI Delayed Dispatch PPI as defined in the PI 1.7 Specification + EFI Delayed Dispatch PPI as defined in the PI 1.8 Specification Provide timed event service in PEI @@ -50,6 +50,7 @@ This service is the single member function of the EFI_DELAYED_DISPATCH_PPI @param[in] This Pointer to the EFI_DELAYED_DISPATCH_PPI instance @param[in] Function Function to call back @param[in] Context Context data + @param[in] UniqueId GUID for this Delayed Dispatch request. @param[in] Delay Delay interval @retval EFI_SUCCESS Function successfully loaded @@ -63,9 +64,29 @@ EFI_STATUS IN EFI_DELAYED_DISPATCH_PPI *This, IN EFI_DELAYED_DISPATCH_FUNCTION Function, IN UINT64 Context, + IN EFI_GUID *UniqueId OPTIONAL, IN UINT32 Delay ); +/** + Wait on a registered Delayed Dispatch unit that has a UniqueId. Continue + to dispatch all registered delayed dispatch entries until *ALL* entries with + UniqueId have completed. + + @param[in] This The Delayed Dispatch PPI pointer. + @param[in] UniqueId UniqueId of delayed dispatch entry. + + @retval EFI_SUCCESS The operation succeeds. + @retval EFI_INVALID_PARAMETER The parameters are invalid. + +**/ +typedef +EFI_STATUS +(EFIAPI *EFI_DELAYED_DISPATCH_WAIT_ON_EVENT)( + IN EFI_DELAYED_DISPATCH_PPI *This, + IN EFI_GUID *UniqueId + ); + /// /// This PPI is a pointer to the Delayed Dispatch Service. /// This service will be published by the Pei Foundation. The PEI Foundation @@ -73,7 +94,8 @@ EFI_STATUS /// execution. /// struct _EFI_DELAYED_DISPATCH_PPI { - EFI_DELAYED_DISPATCH_REGISTER Register; + EFI_DELAYED_DISPATCH_REGISTER Register; + EFI_DELAYED_DISPATCH_WAIT_ON_EVENT WaitOnEvent; }; extern EFI_GUID gEfiPeiDelayedDispatchPpiGuid; -- 2.42.0.windows.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#109468): https://edk2.groups.io/g/devel/message/109468 Mute This Topic: https://groups.io/mt/101865809/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-