]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/CpuDxe/CpuGdt.c
UefiCpuPkg/MpService: move settimer out to InitMpSystemData
[mirror_edk2.git] / UefiCpuPkg / CpuDxe / CpuGdt.c
index 188cdb52b2d433ba4ce76aab210be4998bf9bb34..35a87a6e453e8bcf85a993df18c678d6c76c9978 100644 (file)
@@ -2,7 +2,7 @@
   C based implemention of IA32 interrupt handling only\r
   requiring a minimal assembly interrupt entry point.\r
 \r
-  Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\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
 **/\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\r
-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
@@ -162,11 +111,12 @@ STATIC GDT_ENTRIES GdtTemplate = {
 };\r
 \r
 /**\r
-  Initialize Global Descriptor Table\r
+  Initialize Global Descriptor Table.\r
 \r
 **/\r
 VOID\r
 InitGlobalDescriptorTable (\r
+  VOID\r
   )\r
 {\r
   GDT_ENTRIES *gdt;\r
@@ -188,7 +138,7 @@ InitGlobalDescriptorTable (
   // Write GDT register\r
   //\r
   gdtPtr.Base = (UINT32)(UINTN)(VOID*) gdt;\r
-  gdtPtr.Limit = sizeof (GdtTemplate) - 1;\r
+  gdtPtr.Limit = (UINT16) (sizeof (GdtTemplate) - 1);\r
   AsmWriteGdtr (&gdtPtr);\r
 \r
   //\r