-\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