\r
#include "CpuDriver.h"\r
\r
-\r
-MP_SYSTEM_DATA gMPSystem;\r
-EMU_THREAD_THUNK_PROTOCOL *gThread = NULL;\r
-EFI_EVENT gReadToBootEvent;\r
-BOOLEAN gReadToBoot = FALSE;\r
-UINTN gPollInterval;\r
-\r
+MP_SYSTEM_DATA gMPSystem;\r
+EMU_THREAD_THUNK_PROTOCOL *gThread = NULL;\r
+EFI_EVENT gReadToBootEvent;\r
+BOOLEAN gReadToBoot = FALSE;\r
+UINTN gPollInterval;\r
\r
BOOLEAN\r
IsBSP (\r
return (gMPSystem.ProcessorData[ProcessorNumber].Info.StatusFlag & PROCESSOR_AS_BSP_BIT) != 0;\r
}\r
\r
-\r
VOID\r
SetApProcedure (\r
IN PROCESSOR_DATA_BLOCK *Processor,\r
)\r
{\r
gThread->MutexLock (Processor->ProcedureLock);\r
- Processor->Parameter = ProcedureArgument;\r
- Processor->Procedure = Procedure;\r
+ Processor->Parameter = ProcedureArgument;\r
+ Processor->Procedure = Procedure;\r
gThread->MutexUnlock (Processor->ProcedureLock);\r
}\r
\r
-\r
EFI_STATUS\r
GetNextBlockedNumber (\r
- OUT UINTN *NextNumber\r
+ OUT UINTN *NextNumber\r
)\r
{\r
UINTN Number;\r
**/\r
UINTN\r
CalculateAndStallInterval (\r
- IN UINTN Timeout\r
+ IN UINTN Timeout\r
)\r
{\r
- UINTN StallTime;\r
+ UINTN StallTime;\r
\r
- if (Timeout < gPollInterval && Timeout != 0) {\r
+ if ((Timeout < gPollInterval) && (Timeout != 0)) {\r
StallTime = Timeout;\r
} else {\r
StallTime = gPollInterval;\r
}\r
+\r
gBS->Stall (StallTime);\r
\r
return StallTime;\r
return EFI_SUCCESS;\r
}\r
\r
-\r
-\r
/**\r
Gets detailed MP-related information on the requested processor at the\r
instant this call is made. This service may only be called from the BSP.\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
This service executes a caller provided function on all enabled APs. APs can\r
run either simultaneously or one at a time in sequence. This service supports\r
PROCESSOR_STATE ProcessorState;\r
UINTN Timeout;\r
\r
-\r
if (!IsBSP ()) {\r
return EFI_DEVICE_ERROR;\r
}\r
// Skip Disabled processors\r
continue;\r
}\r
- gThread->MutexLock(ProcessorData->StateLock);\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
+ gThread->MutexUnlock (ProcessorData->StateLock);\r
}\r
\r
if (FailedCpuList != NULL) {\r
if (gMPSystem.FailedList == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
SetMemN (gMPSystem.FailedList, (gMPSystem.NumberOfProcessors + 1) * sizeof (UINTN), END_OF_CPU_LIST);\r
gMPSystem.FailedListIndex = 0;\r
- *FailedCpuList = gMPSystem.FailedList;\r
+ *FailedCpuList = gMPSystem.FailedList;\r
}\r
\r
Timeout = TimeoutInMicroseconds;\r
\r
- ProcessorData = NULL;\r
+ ProcessorData = NULL;\r
\r
- gMPSystem.FinishCount = 0;\r
- gMPSystem.StartCount = 0;\r
- gMPSystem.SingleThread = SingleThread;\r
- APInitialState = CPU_STATE_READY;\r
+ gMPSystem.FinishCount = 0;\r
+ gMPSystem.StartCount = 0;\r
+ gMPSystem.SingleThread = SingleThread;\r
+ APInitialState = CPU_STATE_READY;\r
\r
for (Number = 0; Number < gMPSystem.NumberOfProcessors; Number++) {\r
ProcessorData = &gMPSystem.ProcessorData[Number];\r
// state 1 by 1, until the previous 1 finished its task\r
// if not "SingleThread", all APs are put to ready state from the beginning\r
//\r
- gThread->MutexLock(ProcessorData->StateLock);\r
+ gThread->MutexLock (ProcessorData->StateLock);\r
ASSERT (ProcessorData->State == CPU_STATE_IDLE);\r
ProcessorData->State = APInitialState;\r
gThread->MutexUnlock (ProcessorData->StateLock);\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
+ // Skip BSP\r
continue;\r
}\r
\r
gMPSystem.WaitEvent = WaitEvent;\r
gMPSystem.Timeout = TimeoutInMicroseconds;\r
gMPSystem.TimeoutActive = (BOOLEAN)(TimeoutInMicroseconds != 0);\r
- Status = gBS->SetTimer (\r
- gMPSystem.CheckAllAPsEvent,\r
- TimerPeriodic,\r
- gPollInterval\r
- );\r
+ Status = gBS->SetTimer (\r
+ gMPSystem.CheckAllAPsEvent,\r
+ TimerPeriodic,\r
+ gPollInterval\r
+ );\r
return Status;\r
-\r
}\r
\r
while (TRUE) {\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
+ // Skip BSP\r
continue;\r
}\r
\r
gThread->MutexUnlock (ProcessorData->StateLock);\r
\r
switch (ProcessorState) {\r
- case CPU_STATE_READY:\r
- SetApProcedure (ProcessorData, Procedure, ProcedureArgument);\r
- break;\r
-\r
- case CPU_STATE_FINISHED:\r
- gMPSystem.FinishCount++;\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
+ case CPU_STATE_READY:\r
+ SetApProcedure (ProcessorData, Procedure, ProcedureArgument);\r
+ break;\r
+\r
+ case CPU_STATE_FINISHED:\r
+ gMPSystem.FinishCount++;\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
\r
- gThread->MutexLock (ProcessorData->StateLock);\r
- ProcessorData->State = CPU_STATE_IDLE;\r
- gThread->MutexUnlock (ProcessorData->StateLock);\r
+ gThread->MutexLock (ProcessorData->StateLock);\r
+ ProcessorData->State = CPU_STATE_IDLE;\r
+ gThread->MutexUnlock (ProcessorData->StateLock);\r
\r
- break;\r
+ break;\r
\r
- default:\r
- break;\r
+ default:\r
+ break;\r
}\r
}\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
This service lets the caller get one enabled AP to execute a caller-provided\r
function. The caller can request the BSP to either wait for the completion\r
OUT BOOLEAN *Finished OPTIONAL\r
)\r
{\r
- UINTN Timeout;\r
+ UINTN Timeout;\r
\r
if (!IsBSP ()) {\r
return EFI_DEVICE_ERROR;\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- gThread->MutexLock(gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
+ gThread->MutexLock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
if (gMPSystem.ProcessorData[ProcessorNumber].State != CPU_STATE_IDLE) {\r
- gThread->MutexUnlock(gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
+ gThread->MutexUnlock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
return EFI_NOT_READY;\r
}\r
- gThread->MutexUnlock(gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
+\r
+ gThread->MutexUnlock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
\r
if ((WaitEvent != NULL) && gReadToBoot) {\r
return EFI_UNSUPPORTED;\r
\r
Timeout = TimeoutInMicroseconds;\r
\r
- gMPSystem.StartCount = 1;\r
- gMPSystem.FinishCount = 0;\r
+ gMPSystem.StartCount = 1;\r
+ gMPSystem.FinishCount = 0;\r
\r
SetApProcedure (&gMPSystem.ProcessorData[ProcessorNumber], Procedure, ProcedureArgument);\r
\r
}\r
\r
return EFI_SUCCESS;\r
-\r
}\r
\r
-\r
/**\r
This service switches the requested AP to be the BSP from that point onward.\r
This service changes the BSP for all purposes. This call can only be performed\r
IN BOOLEAN EnableOldBSP\r
)\r
{\r
- UINTN Index;\r
+ UINTN Index;\r
\r
if (!IsBSP ()) {\r
return EFI_DEVICE_ERROR;\r
break;\r
}\r
}\r
+\r
ASSERT (Index != gMPSystem.NumberOfProcessors);\r
\r
gThread->MutexLock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
gThread->MutexUnlock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
return EFI_NOT_READY;\r
}\r
+\r
gThread->MutexUnlock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
\r
// Skip for now as we need switch a bunch of stack stuff around and it's complex\r
return EFI_NOT_READY;\r
}\r
\r
-\r
/**\r
This service lets the caller enable or disable an AP from this point onward.\r
This service may only be called from the BSP.\r
gThread->MutexUnlock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
return EFI_UNSUPPORTED;\r
}\r
+\r
gThread->MutexUnlock (gMPSystem.ProcessorData[ProcessorNumber].StateLock);\r
\r
if (EnableAP) {\r
if ((gMPSystem.ProcessorData[ProcessorNumber].Info.StatusFlag & PROCESSOR_ENABLED_BIT) == 0 ) {\r
gMPSystem.NumberOfEnabledProcessors++;\r
}\r
+\r
gMPSystem.ProcessorData[ProcessorNumber].Info.StatusFlag |= PROCESSOR_ENABLED_BIT;\r
} else {\r
if ((gMPSystem.ProcessorData[ProcessorNumber].Info.StatusFlag & PROCESSOR_ENABLED_BIT) == PROCESSOR_ENABLED_BIT ) {\r
gMPSystem.NumberOfEnabledProcessors--;\r
}\r
+\r
gMPSystem.ProcessorData[ProcessorNumber].Info.StatusFlag &= ~PROCESSOR_ENABLED_BIT;\r
}\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
This return the handle number for the calling processor. This service may be\r
called from the BSP and APs.\r
return EFI_SUCCESS;\r
}\r
\r
-\r
-\r
EFI_MP_SERVICES_PROTOCOL mMpServicesTemplate = {\r
CpuMpServicesGetNumberOfProcessors,\r
CpuMpServicesGetProcessorInfo,\r
CpuMpServicesWhoAmI\r
};\r
\r
-\r
-\r
/*++\r
If timeout occurs in StartupAllAps(), a timer is set, which invokes this\r
procedure periodically to check whether all APs have finished.\r
VOID\r
EFIAPI\r
CpuCheckAllAPsStatus (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
UINTN ProcessorNumber;\r
for (ProcessorNumber = 0; ProcessorNumber < gMPSystem.NumberOfProcessors; ProcessorNumber++) {\r
ProcessorData = &gMPSystem.ProcessorData[ProcessorNumber];\r
if ((ProcessorData->Info.StatusFlag & PROCESSOR_AS_BSP_BIT) == PROCESSOR_AS_BSP_BIT) {\r
- // Skip BSP\r
+ // Skip BSP\r
continue;\r
}\r
\r
// So, try lock it. If we can get it, cool, do our thing.\r
// otherwise, just dump out & try again on the next iteration.\r
Status = gThread->MutexTryLock (ProcessorData->StateLock);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
return;\r
}\r
+\r
ProcessorState = ProcessorData->State;\r
gThread->MutexUnlock (ProcessorData->StateLock);\r
\r
switch (ProcessorState) {\r
- case CPU_STATE_FINISHED:\r
- if (gMPSystem.SingleThread) {\r
- Status = GetNextBlockedNumber (&NextNumber);\r
- if (!EFI_ERROR (Status)) {\r
- NextData = &gMPSystem.ProcessorData[NextNumber];\r
+ case CPU_STATE_FINISHED:\r
+ if (gMPSystem.SingleThread) {\r
+ Status = GetNextBlockedNumber (&NextNumber);\r
+ if (!EFI_ERROR (Status)) {\r
+ NextData = &gMPSystem.ProcessorData[NextNumber];\r
\r
- gThread->MutexLock (NextData->StateLock);\r
- NextData->State = CPU_STATE_READY;\r
- gThread->MutexUnlock (NextData->StateLock);\r
+ gThread->MutexLock (NextData->StateLock);\r
+ NextData->State = CPU_STATE_READY;\r
+ gThread->MutexUnlock (NextData->StateLock);\r
\r
- SetApProcedure (NextData, gMPSystem.Procedure, gMPSystem.ProcedureArgument);\r
+ SetApProcedure (NextData, gMPSystem.Procedure, gMPSystem.ProcedureArgument);\r
+ }\r
}\r
- }\r
\r
- gThread->MutexLock (ProcessorData->StateLock);\r
- ProcessorData->State = CPU_STATE_IDLE;\r
- gThread->MutexUnlock (ProcessorData->StateLock);\r
- gMPSystem.FinishCount++;\r
- break;\r
+ gThread->MutexLock (ProcessorData->StateLock);\r
+ ProcessorData->State = CPU_STATE_IDLE;\r
+ gThread->MutexUnlock (ProcessorData->StateLock);\r
+ gMPSystem.FinishCount++;\r
+ break;\r
\r
- default:\r
- break;\r
+ default:\r
+ break;\r
}\r
}\r
\r
- if (gMPSystem.TimeoutActive && gMPSystem.Timeout == 0) {\r
+ if (gMPSystem.TimeoutActive && (gMPSystem.Timeout == 0)) {\r
//\r
// Timeout\r
//\r
for (ProcessorNumber = 0; ProcessorNumber < gMPSystem.NumberOfProcessors; ProcessorNumber++) {\r
ProcessorData = &gMPSystem.ProcessorData[ProcessorNumber];\r
if ((ProcessorData->Info.StatusFlag & PROCESSOR_AS_BSP_BIT) == PROCESSOR_AS_BSP_BIT) {\r
- // Skip BSP\r
+ // Skip BSP\r
continue;\r
}\r
\r
\r
// Mark the\r
Status = gThread->MutexTryLock (ProcessorData->StateLock);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
return;\r
}\r
+\r
ProcessorState = ProcessorData->State;\r
gThread->MutexUnlock (ProcessorData->StateLock);\r
\r
if (gMPSystem.FailedList[Cpu] == END_OF_CPU_LIST) {\r
break;\r
}\r
+\r
if (gMPSystem.FailedList[ProcessorNumber] == Cpu) {\r
Found = TRUE;\r
break;\r
}\r
}\r
+\r
if (!Found) {\r
gMPSystem.FailedList[gMPSystem.FailedListIndex++] = Cpu;\r
}\r
}\r
}\r
}\r
+\r
// Force terminal exit\r
gMPSystem.FinishCount = gMPSystem.StartCount;\r
}\r
\r
Status = gBS->SignalEvent (gMPSystem.WaitEvent);\r
\r
- return ;\r
+ return;\r
}\r
\r
VOID\r
EFIAPI\r
CpuCheckThisAPStatus (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
EFI_STATUS Status;\r
PROCESSOR_DATA_BLOCK *ProcessorData;\r
PROCESSOR_STATE ProcessorState;\r
\r
- ProcessorData = (PROCESSOR_DATA_BLOCK *) Context;\r
+ ProcessorData = (PROCESSOR_DATA_BLOCK *)Context;\r
\r
//\r
// This is an Interrupt Service routine.\r
// otherwise, just dump out & try again on the next iteration.\r
//\r
Status = gThread->MutexTryLock (ProcessorData->StateLock);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
return;\r
}\r
+\r
ProcessorState = ProcessorData->State;\r
gThread->MutexUnlock (ProcessorData->StateLock);\r
\r
gThread->MutexUnlock (ProcessorData->StateLock);\r
}\r
\r
- return ;\r
+ return;\r
}\r
\r
-\r
/*++\r
This function is called by all processors (both BSP and AP) once and collects MP related data\r
\r
--*/\r
EFI_STATUS\r
FillInProcessorInformation (\r
- IN BOOLEAN BSP,\r
- IN UINTN ProcessorNumber\r
+ IN BOOLEAN BSP,\r
+ IN UINTN ProcessorNumber\r
)\r
{\r
- gMPSystem.ProcessorData[ProcessorNumber].Info.ProcessorId = gThread->Self ();\r
- gMPSystem.ProcessorData[ProcessorNumber].Info.StatusFlag = PROCESSOR_ENABLED_BIT | PROCESSOR_HEALTH_STATUS_BIT;\r
+ gMPSystem.ProcessorData[ProcessorNumber].Info.ProcessorId = gThread->Self ();\r
+ gMPSystem.ProcessorData[ProcessorNumber].Info.StatusFlag = PROCESSOR_ENABLED_BIT | PROCESSOR_HEALTH_STATUS_BIT;\r
if (BSP) {\r
gMPSystem.ProcessorData[ProcessorNumber].Info.StatusFlag |= PROCESSOR_AS_BSP_BIT;\r
}\r
\r
- gMPSystem.ProcessorData[ProcessorNumber].Info.Location.Package = (UINT32) ProcessorNumber;\r
+ gMPSystem.ProcessorData[ProcessorNumber].Info.Location.Package = (UINT32)ProcessorNumber;\r
gMPSystem.ProcessorData[ProcessorNumber].Info.Location.Core = 0;\r
gMPSystem.ProcessorData[ProcessorNumber].Info.Location.Thread = 0;\r
- gMPSystem.ProcessorData[ProcessorNumber].State = BSP ? CPU_STATE_BUSY : CPU_STATE_IDLE;\r
+ gMPSystem.ProcessorData[ProcessorNumber].State = BSP ? CPU_STATE_BUSY : CPU_STATE_IDLE;\r
\r
- gMPSystem.ProcessorData[ProcessorNumber].Procedure = NULL;\r
- gMPSystem.ProcessorData[ProcessorNumber].Parameter = NULL;\r
- gMPSystem.ProcessorData[ProcessorNumber].StateLock = gThread->MutexInit ();\r
- gMPSystem.ProcessorData[ProcessorNumber].ProcedureLock = gThread->MutexInit ();\r
+ gMPSystem.ProcessorData[ProcessorNumber].Procedure = NULL;\r
+ gMPSystem.ProcessorData[ProcessorNumber].Parameter = NULL;\r
+ gMPSystem.ProcessorData[ProcessorNumber].StateLock = gThread->MutexInit ();\r
+ gMPSystem.ProcessorData[ProcessorNumber].ProcedureLock = gThread->MutexInit ();\r
\r
return EFI_SUCCESS;\r
}\r
PROCESSOR_DATA_BLOCK *ProcessorData;\r
\r
ProcessorNumber = (UINTN)Context;\r
- ProcessorData = &gMPSystem.ProcessorData[ProcessorNumber];\r
+ ProcessorData = &gMPSystem.ProcessorData[ProcessorNumber];\r
\r
ProcessorData->Info.ProcessorId = gThread->Self ();\r
\r
return 0;\r
}\r
\r
-\r
EFI_STATUS\r
InitializeMpSystemData (\r
- IN UINTN NumberOfProcessors\r
+ IN UINTN NumberOfProcessors\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN Index;\r
-\r
+ EFI_STATUS Status;\r
+ UINTN Index;\r
\r
//\r
// Clear the data structure area first.\r
//\r
// First BSP fills and inits all known values, including it's own records.\r
//\r
- gMPSystem.NumberOfProcessors = NumberOfProcessors;\r
- gMPSystem.NumberOfEnabledProcessors = NumberOfProcessors;\r
+ gMPSystem.NumberOfProcessors = NumberOfProcessors;\r
+ gMPSystem.NumberOfEnabledProcessors = NumberOfProcessors;\r
\r
gMPSystem.ProcessorData = AllocateZeroPool (gMPSystem.NumberOfProcessors * sizeof (PROCESSOR_DATA_BLOCK));\r
ASSERT (gMPSystem.ProcessorData != NULL);\r
);\r
ASSERT_EFI_ERROR (Status);\r
\r
-\r
for (Index = 0; Index < gMPSystem.NumberOfProcessors; Index++) {\r
if ((gMPSystem.ProcessorData[Index].Info.StatusFlag & PROCESSOR_AS_BSP_BIT) == PROCESSOR_AS_BSP_BIT) {\r
- // Skip BSP\r
+ // Skip BSP\r
continue;\r
}\r
\r
(VOID *)Index\r
);\r
\r
-\r
Status = gBS->CreateEvent (\r
- EVT_TIMER | EVT_NOTIFY_SIGNAL,\r
- TPL_CALLBACK,\r
- CpuCheckThisAPStatus,\r
- (VOID *) &gMPSystem.ProcessorData[Index],\r
- &gMPSystem.ProcessorData[Index].CheckThisAPEvent\r
- );\r
+ EVT_TIMER | EVT_NOTIFY_SIGNAL,\r
+ TPL_CALLBACK,\r
+ CpuCheckThisAPStatus,\r
+ (VOID *)&gMPSystem.ProcessorData[Index],\r
+ &gMPSystem.ProcessorData[Index].CheckThisAPEvent\r
+ );\r
}\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
-\r
/**\r
Invoke a notification event\r
\r
VOID\r
EFIAPI\r
CpuReadToBootFunction (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
gReadToBoot = TRUE;\r
}\r
\r
-\r
-\r
EFI_STATUS\r
CpuMpServicesInit (\r
- OUT UINTN *MaxCpus\r
+ OUT UINTN *MaxCpus\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_HANDLE Handle;\r
- EMU_IO_THUNK_PROTOCOL *IoThunk;\r
+ EFI_STATUS Status;\r
+ EFI_HANDLE Handle;\r
+ EMU_IO_THUNK_PROTOCOL *IoThunk;\r
\r
*MaxCpus = 1; // BSP\r
- IoThunk = GetIoThunkInstance (&gEmuThreadThunkProtocolGuid, 0);\r
+ IoThunk = GetIoThunkInstance (&gEmuThreadThunkProtocolGuid, 0);\r
if (IoThunk != NULL) {\r
Status = IoThunk->Open (IoThunk);\r
if (!EFI_ERROR (Status)) {\r
if (IoThunk->ConfigString != NULL) {\r
*MaxCpus += StrDecimalToUintn (IoThunk->ConfigString);\r
- gThread = IoThunk->Interface;\r
+ gThread = IoThunk->Interface;\r
}\r
}\r
}\r
return EFI_SUCCESS;\r
}\r
\r
- gPollInterval = (UINTN) PcdGet64 (PcdEmuMpServicesPollingInterval);\r
+ gPollInterval = (UINTN)PcdGet64 (PcdEmuMpServicesPollingInterval);\r
\r
- Status = InitializeMpSystemData (*MaxCpus);\r
+ Status = InitializeMpSystemData (*MaxCpus);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
Handle = NULL;\r
Status = gBS->InstallMultipleProtocolInterfaces (\r
&Handle,\r
- &gEfiMpServiceProtocolGuid, &mMpServicesTemplate,\r
+ &gEfiMpServiceProtocolGuid,\r
+ &mMpServicesTemplate,\r
NULL\r
);\r
return Status;\r
}\r
-\r
-\r