]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Library/MpInitLib/MpLib.h
UefiCpuPkg/MpInitLib: Fix X64 XCODE5/NASM compatibility issues
[mirror_edk2.git] / UefiCpuPkg / Library / MpInitLib / MpLib.h
index 0ac777a099b13ee179053e848f056579a70f7bb9..ea56412cbce04adb575786e214165032f4ddbf67 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   Common header file for MP Initialize Library.\r
 \r
-  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2016 - 2017, 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
@@ -129,12 +129,14 @@ typedef struct {
 // we need to make sure the each fields offset same in different\r
 // architecture.\r
 //\r
+#pragma pack (1)\r
 typedef struct {\r
   UINT32                         InitialApicId;\r
   UINT32                         ApicId;\r
   UINT32                         Health;\r
-  UINT32                         ApTopOfStack;\r
+  UINT64                         ApTopOfStack;\r
 } CPU_INFO_IN_HOB;\r
+#pragma pack ()\r
 \r
 //\r
 // AP reset code information including code address and size,\r
@@ -175,6 +177,7 @@ typedef struct {
   UINTN                 InitFlag;\r
   CPU_INFO_IN_HOB       *CpuInfo;\r
   CPU_MP_DATA           *CpuMpData;\r
+  UINTN                 InitializeFloatingPointUnitsAddress;\r
 } MP_CPU_EXCHANGE_INFO;\r
 \r
 #pragma pack()\r
@@ -225,6 +228,12 @@ struct _CPU_MP_DATA {
   UINT16                         PmCodeSegment;\r
   CPU_AP_DATA                    *CpuData;\r
   volatile MP_CPU_EXCHANGE_INFO  *MpCpuExchangeInfo;\r
+\r
+  UINT32                         CurrentTimerCount;\r
+  UINTN                          DivideValue;\r
+  UINT8                          Vector;\r
+  BOOLEAN                        PeriodicMode;\r
+  BOOLEAN                        TimerInterruptState;\r
 };\r
 \r
 extern EFI_GUID mCpuInitMpLibHobGuid;\r
@@ -248,7 +257,9 @@ VOID
 (EFIAPI * ASM_RELOCATE_AP_LOOP) (\r
   IN BOOLEAN                 MwaitSupport,\r
   IN UINTN                   ApTargetCState,\r
-  IN UINTN                   PmCodeSegment\r
+  IN UINTN                   PmCodeSegment,\r
+  IN UINTN                   TopOfApStack,\r
+  IN UINTN                   NumberToFinish\r
   );\r
 \r
 /**\r
@@ -361,7 +372,7 @@ InitMpGlobalData (
                                       simultaneously.\r
   @param[in]  WaitEvent               The event created by the caller with CreateEvent()\r
                                       service.\r
-  @param[in]  TimeoutInMicrosecsond   Indicates the time limit in microseconds for\r
+  @param[in]  TimeoutInMicroseconds   Indicates the time limit in microseconds for\r
                                       APs to return from Procedure, either for\r
                                       blocking or non-blocking mode.\r
   @param[in]  ProcedureArgument       The parameter passed into Procedure for\r
@@ -398,7 +409,7 @@ StartupAllAPsWorker (
   @param[in]  ProcessorNumber         The handle number of the AP.\r
   @param[in]  WaitEvent               The event created by the caller with CreateEvent()\r
                                       service.\r
-  @param[in]  TimeoutInMicrosecsond   Indicates the time limit in microseconds for\r
+  @param[in]  TimeoutInMicroseconds   Indicates the time limit in microseconds for\r
                                       APs to return from Procedure, either for\r
                                       blocking or non-blocking mode.\r
   @param[in]  ProcedureArgument       The parameter passed into Procedure for\r
@@ -531,26 +542,6 @@ IsMwaitSupport (
   VOID\r
   );\r
 \r
-/**\r
-  Notify function on End Of PEI PPI.\r
-\r
-  On S3 boot, this function will restore wakeup buffer data.\r
-  On normal boot, this function will flag wakeup buffer to be un-used type.\r
-\r
-  @param[in]  PeiServices        The pointer to the PEI Services Table.\r
-  @param[in]  NotifyDescriptor   Address of the notification descriptor data structure.\r
-  @param[in]  Ppi                Address of the PPI that was installed.\r
-\r
-  @retval EFI_SUCCESS        When everything is OK.\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-CpuMpEndOfPeiCallback (\r
-  IN EFI_PEI_SERVICES             **PeiServices,\r
-  IN EFI_PEI_NOTIFY_DESCRIPTOR    *NotifyDescriptor,\r
-  IN VOID                         *Ppi\r
-  );\r
-\r
 /**\r
   Get available system memory below 1MB by specified size.\r
 \r
@@ -571,5 +562,14 @@ RestoreWakeupBuffer(
   IN CPU_MP_DATA              *CpuMpData\r
   );\r
 \r
+/**\r
+  Enable Debug Agent to support source debugging on AP function.\r
+\r
+**/\r
+VOID\r
+EnableDebugAgent (\r
+  VOID\r
+  );\r
+\r
 #endif\r
 \r