REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1973
Add new MpInitLibStartupAllCPUs API uses to start all processors at the same time. Cc: Ray Ni <[email protected]> Cc: Laszlo Ersek <[email protected]> Cc: Chandana Kumar <[email protected]> Cc: Star Zeng <[email protected]> Signed-off-by: Eric Dong <[email protected]> --- UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c | 35 ++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c b/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c index 36c2bb5326..b4024ee1ae 100644 --- a/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c +++ b/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c @@ -405,3 +405,38 @@ MpInitLibWhoAmI ( *ProcessorNumber = 0; return EFI_SUCCESS; } + +/** + This service executes a caller provided function on all enabled CPUs. + + @param[in] Procedure A pointer to the function to be run on + enabled APs of the system. See type + EFI_AP_PROCEDURE. + @param[in] TimeoutInMicroseconds Indicates the time limit in microseconds for + APs to return from Procedure, either for + blocking or non-blocking mode. Zero means + infinity. TimeoutInMicroseconds is ignored + for BSP. + @param[in] ProcedureArgument The parameter passed into Procedure for + all APs. + + @retval EFI_SUCCESS CPU have finished the procedure. + @retval EFI_INVALID_PARAMETER Procedure is NULL. + +**/ +EFI_STATUS +EFIAPI +MpInitLibStartupAllCPUs ( + IN EFI_AP_PROCEDURE Procedure, + IN UINTN TimeoutInMicroseconds, + IN VOID *ProcedureArgument OPTIONAL + ) +{ + if (Procedure == NULL) { + return EFI_INVALID_PARAMETER; + } + + Procedure (ProcedureArgument); + + return EFI_SUCCESS; +} -- 2.21.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#44290): https://edk2.groups.io/g/devel/message/44290 Mute This Topic: https://groups.io/mt/32581674/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
