- SwitchStackData.Buffer = AllocatePages (EFI_SIZE_TO_PAGES (BufferSize));\r
- ASSERT (SwitchStackData.Buffer != NULL);\r
- ZeroMem (SwitchStackData.Buffer, EFI_PAGES_TO_SIZE (EFI_SIZE_TO_PAGES (BufferSize)));\r
- DEBUG ((\r
- DEBUG_INFO,\r
- "Buffer[cpu%lu] for InitializeExceptionStackSwitchHandlers: 0x%lX with size 0x%x\n",\r
- (UINT64)(UINTN)Index,\r
- (UINT64)(UINTN)SwitchStackData.Buffer,\r
- (UINT32)BufferSize\r
- ));\r
-\r
- if (Index == Bsp) {\r
- InitializeExceptionStackSwitchHandlers (&SwitchStackData);\r
- } else {\r
- MpInitLibStartupThisAP (\r
- InitializeExceptionStackSwitchHandlers,\r
- Index,\r
- NULL,\r
- 0,\r
- (VOID *)&SwitchStackData,\r
- NULL\r
- );\r
+ Status = MpInitLibStartupAllCPUs (\r
+ InitializeExceptionStackSwitchHandlers,\r
+ 0,\r
+ SwitchStackData\r
+ );\r
+ ASSERT_EFI_ERROR (Status);\r
+ for (Index = 0; Index < NumberOfProcessors; ++Index) {\r
+ ASSERT (SwitchStackData[Index].Status == EFI_SUCCESS);\r