if (PeiCpuMpData->CpuData[ProcessorNumber].ApicId == GetInitialApicId()) {\r
ProcessorInfoBuffer->StatusFlag |= PROCESSOR_AS_BSP_BIT;\r
}\r
- if (PeiCpuMpData->CpuData[ProcessorNumber].Health.Uint32 == 0) {\r
+ if (PeiCpuMpData->CpuData[ProcessorNumber].CpuHealthy) {\r
ProcessorInfoBuffer->StatusFlag |= PROCESSOR_HEALTH_STATUS_BIT;\r
}\r
if (PeiCpuMpData->CpuData[ProcessorNumber].State == CpuStateDisabled) {\r
return EFI_NOT_FOUND;\r
}\r
\r
+ if (Procedure == NULL) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+\r
//\r
// Check whether caller processor is BSP\r
//\r
if (Index == CallerNumber) {\r
continue;\r
}\r
- WakeUpAP (PeiCpuMpData, FALSE, PeiCpuMpData->CpuData[Index].ApicId, Procedure, ProcedureArgument);\r
+ WakeUpAP (PeiCpuMpData, FALSE, Index, Procedure, ProcedureArgument);\r
//\r
// Wait to finish\r
//\r
WaitCountIndex = 0;\r
FinishedCount = &PeiCpuMpData->FinishedCount;\r
\r
- WakeUpAP (PeiCpuMpData, FALSE, PeiCpuMpData->CpuData[ProcessorNumber].ApicId, Procedure, ProcedureArgument);\r
+ WakeUpAP (PeiCpuMpData, FALSE, ProcessorNumber, Procedure, ProcedureArgument);\r
\r
//\r
// Wait to finish\r
//\r
// Need to wakeUp AP (future BSP).\r
//\r
- WakeUpAP (PeiCpuMpData, FALSE, PeiCpuMpData->CpuData[ProcessorNumber].ApicId, FutureBSPProc, PeiCpuMpData);\r
+ WakeUpAP (PeiCpuMpData, FALSE, ProcessorNumber, FutureBSPProc, PeiCpuMpData);\r
\r
AsmExchangeRole (&PeiCpuMpData->BSPInfo, &PeiCpuMpData->APInfo);\r
\r