From f3b0ee0cee8d0c4356af64cb2d544d7e56d861a3 Mon Sep 17 00:00:00 2001 From: Sachin Ganesh Date: Tue, 21 Nov 2023 15:42:08 +0530 Subject: MdePkg: Update Delayed Dispatch PPI as per PI 1.8 Spec Added WaitOnEvent() function to EFI_DELAYTED_DISPATCH_PPI. Modified DispatchRegister() parameter list. Cc: Felix Polyudov Cc: Dhanaraj V Cc: Liming Gao Signed-off-by: Sachin Ganesh Reviewed-by: Liming Gao --- MdePkg/Include/Ppi/DelayedDispatch.h | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/MdePkg/Include/Ppi/DelayedDispatch.h b/MdePkg/Include/Ppi/DelayedDispatch.h index f9b4fed30f..1c2068404c 100644 --- a/MdePkg/Include/Ppi/DelayedDispatch.h +++ b/MdePkg/Include/Ppi/DelayedDispatch.h @@ -49,6 +49,7 @@ This service is the single member function of the EFI_DELAYED_DISPATCH_PPI @param This Pointer to the EFI_DELAYED_DISPATCH_PPI instance @param Function Function to call back @param Context Context data + @param UniqueId UniqueId @param Delay Delay interval @retval EFI_SUCCESS Function successfully loaded @@ -62,9 +63,29 @@ EFI_STATUS IN EFI_DELAYED_DISPATCH_PPI *This, IN EFI_DELAYED_DISPATCH_FUNCTION Function, IN UINT64 Context, + IN EFI_GUID *UniqueId OPTIONAL, OUT UINT32 Delay ); +/** +Function invoked by a PEIM to wait until all specified UniqueId events have been dispatched. The other events +will continue to dispatch while this process is being paused + + @param This Pointer to the EFI_DELAYED_DISPATCH_PPI instance + @param UniqueId Delayed dispatch request ID the caller will wait on + + @retval EFI_SUCCESS Function successfully invoked + @retval EFI_INVALID_PARAMETER One of the Arguments is not supported + +**/ + +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 @@ -72,7 +93,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; -- cgit v1.2.3