+\r
+ for (Number = 0; Number < gMPSystem.NumberOfProcessors; Number++) {\r
+ ProcessorData = &gMPSystem.ProcessorData[Number];\r
+ if ((ProcessorData->Info.StatusFlag & PROCESSOR_AS_BSP_BIT) == PROCESSOR_AS_BSP_BIT) {\r
+ // Skip BSP\r
+ continue;\r
+ }\r
+\r
+ if ((ProcessorData->Info.StatusFlag & PROCESSOR_ENABLED_BIT) == 0) {\r
+ // Skip Disabled processors\r
+ continue;\r
+ }\r
+ gThread->MutexLock(ProcessorData->StateLock);\r
+ if (ProcessorData->State != CPU_STATE_IDLE) {\r
+ gThread->MutexUnlock (ProcessorData->StateLock);\r
+ return EFI_NOT_READY;\r
+ }\r
+ gThread->MutexUnlock(ProcessorData->StateLock);\r
+ }\r
+\r