/** @file\r
Definitions to install Multiple Processor PPI.\r
\r
- Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>\r
- This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
@retval EFI_UNSUPPORTED Switching the BSP cannot be completed prior to this\r
service returning.\r
@retval EFI_UNSUPPORTED Switching the BSP is not supported.\r
- @retval EFI_SUCCESS The calling processor is an AP.\r
+ @retval EFI_DEVICE_ERROR The calling processor is an AP.\r
@retval EFI_NOT_FOUND The processor with the handle specified by\r
ProcessorNumber does not exist.\r
@retval EFI_INVALID_PARAMETER ProcessorNumber specifies the current BSP or a disabled\r
OUT EFI_SEC_PLATFORM_INFORMATION_RECORD2 *PlatformInformationRecord2\r
);\r
\r
+/**\r
+ Initializes MP and exceptions handlers.\r
+\r
+ @param PeiServices The pointer to the PEI Services Table.\r
+\r
+ @retval EFI_SUCCESS MP was successfully initialized.\r
+ @retval others Error occurred in MP initialization.\r
+\r
+**/\r
+EFI_STATUS\r
+InitializeCpuMpWorker (\r
+ IN CONST EFI_PEI_SERVICES **PeiServices\r
+ );\r
+\r
+/**\r
+ Enabl/setup stack guard for each processor if PcdCpuStackGuard is set to TRUE.\r
+\r
+ Doing this in the memory-discovered callback is to make sure the Stack Guard\r
+ feature to cover as most PEI code as possible.\r
+\r
+ @param[in] PeiServices General purpose services available to every PEIM.\r
+ @param[in] NotifyDescriptor The notification structure this PEIM registered on install.\r
+ @param[in] Ppi The memory discovered PPI. Not used.\r
+\r
+ @retval EFI_SUCCESS The function completed successfully.\r
+ @retval others There's error in MP initialization.\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+MemoryDiscoveredPpiNotifyCallback (\r
+ IN EFI_PEI_SERVICES **PeiServices,\r
+ IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor,\r
+ IN VOID *Ppi\r
+ );\r
+\r
+extern EFI_PEI_NOTIFY_DESCRIPTOR mPostMemNotifyList[];\r
+\r
#endif\r