+/** @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