]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h
UefiCpuPkg/PiSmmCpuDxeSmm: Move S3 related code to CpuS3.c
[mirror_edk2.git] / UefiCpuPkg / PiSmmCpuDxeSmm / PiSmmCpuDxeSmm.h
index bf31e9e4184dec0329fe20cbbad528be29d5131b..97309d1fe77adbe0de661a4bd30318a2b3671618 100644 (file)
@@ -149,7 +149,6 @@ extern SMM_CPU_PRIVATE_DATA  *gSmmCpuPrivate;
 extern CPU_HOT_PLUG_DATA      mCpuHotPlugData;\r
 extern UINTN                  mMaxNumberOfCpus;\r
 extern UINTN                  mNumberOfCpus;\r
-extern BOOLEAN                mRestoreSmmConfigurationInS3;\r
 extern EFI_SMM_CPU_PROTOCOL   mSmmCpu;\r
 \r
 ///\r
@@ -400,11 +399,7 @@ extern IA32_DESCRIPTOR                     gcSmiIdtr;
 extern VOID                                *gcSmiIdtrPtr;\r
 extern CONST PROCESSOR_SMM_DESCRIPTOR      gcPsd;\r
 extern UINT64                              gPhyMask;\r
-extern ACPI_CPU_DATA                       mAcpiCpuData;\r
 extern SMM_DISPATCHER_MP_SYNC_DATA         *mSmmMpSyncData;\r
-extern VOID                                *mGdtForAp;\r
-extern VOID                                *mIdtForAp;\r
-extern VOID                                *mMachineCheckHandlerForAp;\r
 extern UINTN                               mSmmStackArrayBase;\r
 extern UINTN                               mSmmStackArrayEnd;\r
 extern UINTN                               mSmmStackSize;\r
@@ -597,26 +592,14 @@ FindSmramInfo (
   );\r
 \r
 /**\r
-  The function is invoked before SMBASE relocation in S3 path to restores CPU status.\r
+  Relocate SmmBases for each processor.\r
 \r
-  The function is invoked before SMBASE relocation in S3 path. It does first time microcode load\r
-  and restores MTRRs for both BSP and APs.\r
+  Execute on first boot and all S3 resumes\r
 \r
 **/\r
 VOID\r
-EarlyInitializeCpu (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  The function is invoked after SMBASE relocation in S3 path to restores CPU status.\r
-\r
-  The function is invoked after SMBASE relocation in S3 path. It restores configuration according to\r
-  data saved by normal boot path for both BSP and APs.\r
-\r
-**/\r
-VOID\r
-InitializeCpu (\r
+EFIAPI\r
+SmmRelocateBases (\r
   VOID\r
   );\r
 \r
@@ -797,4 +780,40 @@ AllocatePageTableMemory (
   IN UINTN           Pages\r
   );\r
 \r
+\r
+//\r
+// S3 related global variable and function prototype.\r
+//\r
+\r
+extern BOOLEAN                mSmmS3Flag;\r
+\r
+/**\r
+  Initialize SMM S3 resume state structure used during S3 Resume.\r
+\r
+  @param[in] Cr3    The base address of the page tables to use in SMM.\r
+\r
+**/\r
+VOID\r
+InitSmmS3ResumeState (\r
+  IN UINT32  Cr3\r
+  );\r
+\r
+/**\r
+  Get ACPI CPU data.\r
+\r
+**/\r
+VOID\r
+GetAcpiCpuData (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  Restore SMM Configuration in S3 boot path.\r
+\r
+**/\r
+VOID\r
+RestoreSmmConfigurationInS3 (\r
+  VOID\r
+  );\r
+\r
 #endif\r