11#ifndef MP_SERVICES_INTERNAL_H_
12#define MP_SERVICES_INTERNAL_H_
20#define AP_STACK_SIZE 0x1000
54 BOOLEAN TimeoutActive;
55 BOOLEAN *SingleApFinished;
62 UINTN NumberOfProcessors;
63 UINTN NumberOfEnabledProcessors;
69 VOID *ProcedureArgument;
74 UINTN FailedListIndex;
77 BOOLEAN AllTimeoutActive;
159 IN VOID *ProcedureArgument
209 IN BOOLEAN SingleThread
229 IN VOID *ProcedureArgument,
231 IN UINTN TimeoutInMicroseconds,
232 IN BOOLEAN SingleThread,
251 IN VOID *ProcedureArgument,
252 IN UINTN TimeoutInMicroseconds,
253 IN BOOLEAN SingleThread,
266 UINTN ProcessorIndex,
CPU_STATE GetApState(IN CPU_AP_DATA *CpuData)
STATIC EFI_STATUS FillInProcessorInformation(IN BOOLEAN BSP, IN UINTN Mpidr, IN UINTN ProcessorIndex)
STATIC EFI_STATUS EFIAPI DispatchCpu(IN UINTN ProcessorIndex)
STATIC EFI_STATUS StartupAllAPsWithWaitEvent(IN EFI_AP_PROCEDURE Procedure, IN VOID *ProcedureArgument, IN EFI_EVENT WaitEvent, IN UINTN TimeoutInMicroseconds, IN BOOLEAN SingleThread, IN UINTN **FailedCpuList)
STATIC BOOLEAN IsProcessorBSP(UINTN ProcessorIndex)
STATIC VOID StartupAllAPsPrepareState(IN BOOLEAN SingleThread)
STATIC BOOLEAN IsProcessorEnabled(UINTN ProcessorIndex)
STATIC UINTN CalculateAndStallInterval(IN UINTN Timeout)
STATIC VOID EFIAPI CheckAllAPsStatus(IN EFI_EVENT Event, IN VOID *Context)
STATIC VOID EFIAPI ReadyToBootSignaled(IN EFI_EVENT Event, IN VOID *Context)
STATIC EFI_STATUS StartupAllAPsNoWaitEvent(IN EFI_AP_PROCEDURE Procedure, IN VOID *ProcedureArgument, IN UINTN TimeoutInMicroseconds, IN BOOLEAN SingleThread, IN UINTN **FailedCpuList)
STATIC VOID SetApProcedure(IN CPU_AP_DATA *CpuData, IN EFI_AP_PROCEDURE Procedure, IN VOID *ProcedureArgument)
STATIC VOID AddProcessorToFailedList(UINTN ProcessorIndex, CPU_STATE ApState)
STATIC VOID EFIAPI CheckThisAPStatus(IN EFI_EVENT Event, IN VOID *Context)
STATIC BOOLEAN IsCurrentProcessorBSP(VOID)
STATIC VOID ProcessStartupAllAPsTimeout(VOID)
STATIC EFI_STATUS GetNextBlockedNumber(OUT UINTN *NextNumber)
VOID(EFIAPI * EFI_AP_PROCEDURE)(IN OUT VOID *Buffer)