EFI_STATUS Status;\r
UINTN ProcessorNumber;\r
\r
- Status = CpuMpServicesWhoAmI (&mMpSercicesTemplate, &ProcessorNumber);\r
+ Status = CpuMpServicesWhoAmI (&mMpServicesTemplate, &ProcessorNumber);\r
if (EFI_ERROR (Status)) {\r
return FALSE;\r
}\r
if (ProcessorData->State == CPU_STATE_IDLE) {\r
gMPSystem.StartCount++;\r
\r
- gThread->MutexLock (&ProcessorData->StateLock);\r
+ gThread->MutexLock (ProcessorData->StateLock);\r
ProcessorData->State = APInitialState;\r
- gThread->MutexUnlock (&ProcessorData->StateLock);\r
+ gThread->MutexUnlock (ProcessorData->StateLock);\r
\r
if (SingleThread) {\r
APInitialState = CPU_STATE_BLOCKED;\r
if (SingleThread) {\r
Status = GetNextBlockedNumber (&NextNumber);\r
if (!EFI_ERROR (Status)) {\r
+ gThread->MutexLock (gMPSystem.ProcessorData[NextNumber].StateLock);\r
gMPSystem.ProcessorData[NextNumber].State = CPU_STATE_READY;\r
+ gThread->MutexUnlock (gMPSystem.ProcessorData[NextNumber].StateLock);\r
}\r
}\r
\r
+ gThread->MutexLock (ProcessorData->StateLock);\r
ProcessorData->State = CPU_STATE_IDLE;\r
+ gThread->MutexUnlock (ProcessorData->StateLock);\r
+\r
break;\r
\r
default:\r
\r
// Blocking\r
while (TRUE) {\r
- gThread->MutexLock (&gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
+ gThread->MutexLock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
if (gMPSystem.ProcessorData[ProcessorNumber].State == CPU_STATE_FINISHED) {\r
gMPSystem.ProcessorData[ProcessorNumber].State = CPU_STATE_IDLE;\r
- gThread->MutexUnlock (&gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
+ gThread->MutexUnlock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
break;\r
}\r
\r
- gThread->MutexUnlock (&gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
+ gThread->MutexUnlock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
\r
if ((TimeoutInMicroseconds != 0) && (Timeout < 0)) {\r
return EFI_TIMEOUT;\r
return EFI_UNSUPPORTED;\r
}\r
\r
- gThread->MutexLock (&gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
+ gThread->MutexLock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
\r
if (EnableAP) {\r
if ((gMPSystem.ProcessorData[ProcessorNumber].Info.StatusFlag & PROCESSOR_ENABLED_BIT) == 0 ) {\r
gMPSystem.ProcessorData[ProcessorNumber].Info.StatusFlag |= (*HealthFlag & PROCESSOR_HEALTH_STATUS_BIT);\r
}\r
\r
- gThread->MutexUnlock (&gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
+ gThread->MutexUnlock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
\r
return EFI_SUCCESS;\r
}\r
\r
\r
\r
-EFI_MP_SERVICES_PROTOCOL mMpSercicesTemplate = {\r
+EFI_MP_SERVICES_PROTOCOL mMpServicesTemplate = {\r
CpuMpServicesGetNumberOfProcessors,\r
CpuMpServicesGetProcessorInfo,\r
CpuMpServicesStartupAllAps,\r
if (!EFI_ERROR (Status)) {\r
NextData = &gMPSystem.ProcessorData[NextNumber];\r
\r
- gThread->MutexLock (&NextData->ProcedureLock);\r
+ gThread->MutexLock (NextData->StateLock);\r
NextData->State = CPU_STATE_READY;\r
- gThread->MutexUnlock (&NextData->ProcedureLock);\r
+ gThread->MutexUnlock (NextData->StateLock);\r
\r
SetApProcedure (NextData, gMPSystem.Procedure, gMPSystem.ProcedureArgument);\r
}\r
Handle = NULL;\r
Status = gBS->InstallMultipleProtocolInterfaces (\r
&Handle,\r
- &gEfiMpServiceProtocolGuid, &mMpSercicesTemplate,\r
+ &gEfiMpServiceProtocolGuid, &mMpServicesTemplate,\r
NULL\r
);\r
return Status;\r