UefiCpuPkg/MpInitLib: Implementation of MpInitLibStartupAllAPs()

v4:
  1. Simply the internal function StartupAllAPsWorker()'s function
     header due to it is duplicated with MpInitLibStartupAllAPs().
v3:
  1. Use CamelCase for mStopCheckAllApsStatus and
     CheckAndUpdateApsStatus()

Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Michael Kinney <michael.d.kinney@intel.com>
This commit is contained in:
Jeff Fan
2016-07-21 21:33:11 +08:00
parent 20ae57745b
commit 86efe97693
4 changed files with 233 additions and 2 deletions

View File

@@ -305,7 +305,28 @@ MpInitLibStartupAllAPs (
OUT UINTN **FailedCpuList OPTIONAL
)
{
return EFI_UNSUPPORTED;
EFI_STATUS Status;
//
// Temporarily stop checkAllApsStatus for avoid resource dead-lock.
//
mStopCheckAllApsStatus = TRUE;
Status = StartupAllAPsWorker (
Procedure,
SingleThread,
WaitEvent,
TimeoutInMicroseconds,
ProcedureArgument,
FailedCpuList
);
//
// Start checkAllApsStatus
//
mStopCheckAllApsStatus = FALSE;
return Status;
}
/**