UefiCpuPkg/CpuDxe: Move GDT structures into CpuGdt.h
authorJordan Justen <jordan.l.justen@intel.com>
Thu, 13 Nov 2014 18:25:10 +0000 (18:25 +0000)
committerjljusten <jljusten@Edk2>
Thu, 13 Nov 2014 18:25:10 +0000 (18:25 +0000)
We'll want to use the structures for AP startup.

Note: It seems previously we were not using '#pragma pack ()' in
      CpuGdt.c.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16348 6f19259b-4bc3-4df7-8a09-765794883524

UefiCpuPkg/CpuDxe/CpuGdt.c
UefiCpuPkg/CpuDxe/CpuGdt.h [new file with mode: 0644]

index 32f45a5..35a87a6 100644 (file)
 **/\r
 \r
 #include "CpuDxe.h"\r
-\r
-\r
-//\r
-// Local structure definitions\r
-//\r
-\r
-#pragma pack (1)\r
-\r
-//\r
-// Global Descriptor Entry structures\r
-//\r
-\r
-typedef struct _GDT_ENTRY {\r
-  UINT16 Limit15_0;\r
-  UINT16 Base15_0;\r
-  UINT8  Base23_16;\r
-  UINT8  Type;\r
-  UINT8  Limit19_16_and_flags;\r
-  UINT8  Base31_24;\r
-} GDT_ENTRY;\r
-\r
-typedef\r
-struct _GDT_ENTRIES {\r
-  GDT_ENTRY Null;\r
-  GDT_ENTRY Linear;\r
-  GDT_ENTRY LinearCode;\r
-  GDT_ENTRY SysData;\r
-  GDT_ENTRY SysCode;\r
-  GDT_ENTRY LinearCode64;\r
-  GDT_ENTRY Spare4;\r
-  GDT_ENTRY Spare5;\r
-} GDT_ENTRIES;\r
-\r
-#define NULL_SEL          OFFSET_OF (GDT_ENTRIES, Null)\r
-#define LINEAR_SEL        OFFSET_OF (GDT_ENTRIES, Linear)\r
-#define LINEAR_CODE_SEL   OFFSET_OF (GDT_ENTRIES, LinearCode)\r
-#define SYS_DATA_SEL      OFFSET_OF (GDT_ENTRIES, SysData)\r
-#define SYS_CODE_SEL      OFFSET_OF (GDT_ENTRIES, SysCode)\r
-#define LINEAR_CODE64_SEL OFFSET_OF (GDT_ENTRIES, LinearCode64)\r
-#define SPARE4_SEL        OFFSET_OF (GDT_ENTRIES, Spare4)\r
-#define SPARE5_SEL        OFFSET_OF (GDT_ENTRIES, Spare5)\r
-\r
-#if defined (MDE_CPU_IA32)\r
-#define CPU_CODE_SEL LINEAR_CODE_SEL\r
-#define CPU_DATA_SEL LINEAR_SEL\r
-#elif defined (MDE_CPU_X64)\r
-#define CPU_CODE_SEL LINEAR_CODE64_SEL\r
-#define CPU_DATA_SEL LINEAR_SEL\r
-#else\r
-#error CPU type not supported for CPU GDT initialization!\r
-#endif\r
+#include "CpuGdt.h"\r
 \r
 //\r
 // Global descriptor table (GDT) Template\r
diff --git a/UefiCpuPkg/CpuDxe/CpuGdt.h b/UefiCpuPkg/CpuDxe/CpuGdt.h
new file mode 100644 (file)
index 0000000..7ecec5d
--- /dev/null
@@ -0,0 +1,72 @@
+/** @file\r
+  C based implemention of IA32 interrupt handling only\r
+  requiring a minimal assembly interrupt entry point.\r
+\r
+  Copyright (c) 2006 - 2010, 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
+\r
+**/\r
+\r
+#ifndef _CPU_GDT_H_\r
+#define _CPU_GDT_H_\r
+\r
+//\r
+// Local structure definitions\r
+//\r
+\r
+#pragma pack (1)\r
+\r
+//\r
+// Global Descriptor Entry structures\r
+//\r
+\r
+typedef struct _GDT_ENTRY {\r
+  UINT16 Limit15_0;\r
+  UINT16 Base15_0;\r
+  UINT8  Base23_16;\r
+  UINT8  Type;\r
+  UINT8  Limit19_16_and_flags;\r
+  UINT8  Base31_24;\r
+} GDT_ENTRY;\r
+\r
+typedef\r
+struct _GDT_ENTRIES {\r
+  GDT_ENTRY Null;\r
+  GDT_ENTRY Linear;\r
+  GDT_ENTRY LinearCode;\r
+  GDT_ENTRY SysData;\r
+  GDT_ENTRY SysCode;\r
+  GDT_ENTRY LinearCode64;\r
+  GDT_ENTRY Spare4;\r
+  GDT_ENTRY Spare5;\r
+} GDT_ENTRIES;\r
+\r
+#pragma pack ()\r
+\r
+#define NULL_SEL          OFFSET_OF (GDT_ENTRIES, Null)\r
+#define LINEAR_SEL        OFFSET_OF (GDT_ENTRIES, Linear)\r
+#define LINEAR_CODE_SEL   OFFSET_OF (GDT_ENTRIES, LinearCode)\r
+#define SYS_DATA_SEL      OFFSET_OF (GDT_ENTRIES, SysData)\r
+#define SYS_CODE_SEL      OFFSET_OF (GDT_ENTRIES, SysCode)\r
+#define LINEAR_CODE64_SEL OFFSET_OF (GDT_ENTRIES, LinearCode64)\r
+#define SPARE4_SEL        OFFSET_OF (GDT_ENTRIES, Spare4)\r
+#define SPARE5_SEL        OFFSET_OF (GDT_ENTRIES, Spare5)\r
+\r
+#if defined (MDE_CPU_IA32)\r
+#define CPU_CODE_SEL LINEAR_CODE_SEL\r
+#define CPU_DATA_SEL LINEAR_SEL\r
+#elif defined (MDE_CPU_X64)\r
+#define CPU_CODE_SEL LINEAR_CODE64_SEL\r
+#define CPU_DATA_SEL LINEAR_SEL\r
+#else\r
+#error CPU type not supported for CPU GDT initialization!\r
+#endif\r
+\r
+#endif // _CPU_GDT_H_\r
+\r