Move STARTUP_CODE and ENABLE_EXECUTE_DISABLE_CODE definitions from ApStartup.c
to CpuMp.h.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <[email protected]>
CC: Michael Kinney <[email protected]>
CC: Laszlo Ersek <[email protected]>
---
 UefiCpuPkg/CpuDxe/ApStartup.c | 99 -------------------------------------------
 UefiCpuPkg/CpuDxe/CpuMp.h     | 99 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 99 insertions(+), 99 deletions(-)

diff --git a/UefiCpuPkg/CpuDxe/ApStartup.c b/UefiCpuPkg/CpuDxe/ApStartup.c
index 78fb26f..77476ae 100644
--- a/UefiCpuPkg/CpuDxe/ApStartup.c
+++ b/UefiCpuPkg/CpuDxe/ApStartup.c
@@ -16,29 +16,6 @@
 #include "CpuGdt.h"
 #include "CpuMp.h"
 
-#pragma pack(1)
-
-typedef struct {
-  UINT8  MoveIa32EferMsrToEcx[5];
-  UINT8  ReadIa32EferMsr[2];
-  UINT8  SetExecuteDisableBitEnableBit[4];
-  UINT8  WriteIa32EferMsr[2];
-
-#if defined (MDE_CPU_IA32)
-  UINT8  MovEaxCr3;
-  UINT32 Cr3Value;
-  UINT8  MovCr3Eax[3];
-
-  UINT8  MoveCr4ToEax[3];
-  UINT8  SetCr4Bit5[4];
-  UINT8  MoveEaxToCr4[3];
-
-  UINT8  MoveCr0ToEax[3];
-  UINT8  SetCr0PagingBit[4];
-  UINT8  MoveEaxToCr0[3];
-#endif
-} ENABLE_EXECUTE_DISABLE_CODE;
-
 ENABLE_EXECUTE_DISABLE_CODE mEnableExecuteDisableCodeTemplate = {
   { 0xB9, 0x80, 0x00, 0x00, 0xC0 },   // mov ecx, 0xc0000080
   { 0x0F, 0x32 },                     // rdmsr
@@ -59,82 +36,6 @@ ENABLE_EXECUTE_DISABLE_CODE 
mEnableExecuteDisableCodeTemplate = {
 #endif
 };
 
-typedef struct {
-  UINT8  JmpToCli[2];
-
-  UINT16 GdtLimit;
-  UINT32 GdtBase;
-
-  UINT8  Cli;
-
-  UINT8  MovAxRealSegment; UINT16 RealSegment;
-  UINT8  MovDsAx[2];
-
-  UINT8  MovBxGdtr[3];
-  UINT8  LoadGdt[5];
-
-  UINT8  MovEaxCr0[2];
-  UINT32 MovEaxCr0Value;
-  UINT8  MovCr0Eax[3];
-
-  UINT8  FarJmp32Flat[2]; UINT32 FlatJmpOffset; UINT16 FlatJmpSelector;
-
-  //
-  // Now in IA32
-  //
-  UINT8  MovEaxCr4;
-  UINT32 MovEaxCr4Value;
-  UINT8  MovCr4Eax[3];
-
-  UINT8  MoveDataSelectorIntoAx[2]; UINT16 FlatDataSelector;
-  UINT8  MoveFlatDataSelectorFromAxToDs[2];
-  UINT8  MoveFlatDataSelectorFromAxToEs[2];
-  UINT8  MoveFlatDataSelectorFromAxToFs[2];
-  UINT8  MoveFlatDataSelectorFromAxToGs[2];
-  UINT8  MoveFlatDataSelectorFromAxToSs[2];
-
-  //
-  // Code placeholder to enable PAE Execute Disable for IA32
-  // and enable Execute Disable Bit for X64
-  //
-  ENABLE_EXECUTE_DISABLE_CODE EnableExecuteDisable;
-
-#if defined (MDE_CPU_X64)
-  //
-  // Transition to X64
-  //
-  UINT8  MovEaxCr3;
-  UINT32 Cr3Value;
-  UINT8  MovCr3Eax[3];
-
-  UINT8  MoveCr4ToEax[3];
-  UINT8  SetCr4Bit5[4];
-  UINT8  MoveEaxToCr4[3];
-
-  UINT8  MoveLongModeEnableMsrToEcx[5];
-  UINT8  ReadLmeMsr[2];
-  UINT8  SetLongModeEnableBit[4];
-  UINT8  WriteLmeMsr[2];
-
-  UINT8  MoveCr0ToEax[3];
-  UINT8  SetCr0PagingBit[4];
-  UINT8  MoveEaxToCr0[3];
-  //UINT8  DeadLoop[2];
-
-  UINT8  FarJmp32LongMode; UINT32 LongJmpOffset; UINT16 LongJmpSelector;
-#endif // defined (MDE_CPU_X64)
-
-#if defined (MDE_CPU_X64)
-  UINT8  MovEaxOrRaxCpuDxeEntry[2]; UINTN CpuDxeEntryValue;
-#else
-  UINT8  MovEaxOrRaxCpuDxeEntry; UINTN CpuDxeEntryValue;
-#endif
-  UINT8  JmpToCpuDxeEntry[2];
-
-} STARTUP_CODE;
-
-#pragma pack()
-
 /**
   This .asm code used for translating processor from 16 bit real mode into
   64 bit long mode. which help to create the mStartupCodeTemplate value.
diff --git a/UefiCpuPkg/CpuDxe/CpuMp.h b/UefiCpuPkg/CpuDxe/CpuMp.h
index 503f3ae..feca3be 100644
--- a/UefiCpuPkg/CpuDxe/CpuMp.h
+++ b/UefiCpuPkg/CpuDxe/CpuMp.h
@@ -22,6 +22,105 @@
 #include <Library/HobLib.h>
 #include <Library/ReportStatusCodeLib.h>
 
+#pragma pack(1)
+
+typedef struct {
+  UINT8  MoveIa32EferMsrToEcx[5];
+  UINT8  ReadIa32EferMsr[2];
+  UINT8  SetExecuteDisableBitEnableBit[4];
+  UINT8  WriteIa32EferMsr[2];
+
+#if defined (MDE_CPU_IA32)
+  UINT8  MovEaxCr3;
+  UINT32 Cr3Value;
+  UINT8  MovCr3Eax[3];
+
+  UINT8  MoveCr4ToEax[3];
+  UINT8  SetCr4Bit5[4];
+  UINT8  MoveEaxToCr4[3];
+
+  UINT8  MoveCr0ToEax[3];
+  UINT8  SetCr0PagingBit[4];
+  UINT8  MoveEaxToCr0[3];
+#endif
+} ENABLE_EXECUTE_DISABLE_CODE;
+
+typedef struct {
+  UINT8  JmpToCli[2];
+
+  UINT16 GdtLimit;
+  UINT32 GdtBase;
+
+  UINT8  Cli;
+
+  UINT8  MovAxRealSegment; UINT16 RealSegment;
+  UINT8  MovDsAx[2];
+
+  UINT8  MovBxGdtr[3];
+  UINT8  LoadGdt[5];
+
+  UINT8  MovEaxCr0[2];
+  UINT32 MovEaxCr0Value;
+  UINT8  MovCr0Eax[3];
+
+  UINT8  FarJmp32Flat[2]; UINT32 FlatJmpOffset; UINT16 FlatJmpSelector;
+
+  //
+  // Now in IA32
+  //
+  UINT8  MovEaxCr4;
+  UINT32 MovEaxCr4Value;
+  UINT8  MovCr4Eax[3];
+
+  UINT8  MoveDataSelectorIntoAx[2]; UINT16 FlatDataSelector;
+  UINT8  MoveFlatDataSelectorFromAxToDs[2];
+  UINT8  MoveFlatDataSelectorFromAxToEs[2];
+  UINT8  MoveFlatDataSelectorFromAxToFs[2];
+  UINT8  MoveFlatDataSelectorFromAxToGs[2];
+  UINT8  MoveFlatDataSelectorFromAxToSs[2];
+
+  //
+  // Code placeholder to enable PAE Execute Disable for IA32
+  // and enable Execute Disable Bit for X64
+  //
+  ENABLE_EXECUTE_DISABLE_CODE EnableExecuteDisable;
+
+#if defined (MDE_CPU_X64)
+  //
+  // Transition to X64
+  //
+  UINT8  MovEaxCr3;
+  UINT32 Cr3Value;
+  UINT8  MovCr3Eax[3];
+
+  UINT8  MoveCr4ToEax[3];
+  UINT8  SetCr4Bit5[4];
+  UINT8  MoveEaxToCr4[3];
+
+  UINT8  MoveLongModeEnableMsrToEcx[5];
+  UINT8  ReadLmeMsr[2];
+  UINT8  SetLongModeEnableBit[4];
+  UINT8  WriteLmeMsr[2];
+
+  UINT8  MoveCr0ToEax[3];
+  UINT8  SetCr0PagingBit[4];
+  UINT8  MoveEaxToCr0[3];
+  //UINT8  DeadLoop[2];
+
+  UINT8  FarJmp32LongMode; UINT32 LongJmpOffset; UINT16 LongJmpSelector;
+#endif // defined (MDE_CPU_X64)
+
+#if defined (MDE_CPU_X64)
+  UINT8  MovEaxOrRaxCpuDxeEntry[2]; UINTN CpuDxeEntryValue;
+#else
+  UINT8  MovEaxOrRaxCpuDxeEntry; UINTN CpuDxeEntryValue;
+#endif
+  UINT8  JmpToCpuDxeEntry[2];
+
+} STARTUP_CODE;
+
+#pragma pack()
+
 /**
   Initialize Multi-processor support.
 
-- 
1.9.5.msysgit.0

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to