UefiCpuPkg/MpInitLibUp: Add MpInitLibStartupAllCPUs API.

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 <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Chandana Kumar <chandana.c.kumar@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
This commit is contained in:
Eric Dong 2019-07-22 08:19:29 +08:00
parent ee0c39fa11
commit c06a657f4f
1 changed files with 35 additions and 0 deletions

View File

@ -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;
}