UefiCpuPkg/CpuDxe: Move GDT structures into CpuGdt.h
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
This commit is contained in:
@@ -14,57 +14,7 @@
|
||||
**/
|
||||
|
||||
#include "CpuDxe.h"
|
||||
|
||||
|
||||
//
|
||||
// Local structure definitions
|
||||
//
|
||||
|
||||
#pragma pack (1)
|
||||
|
||||
//
|
||||
// Global Descriptor Entry structures
|
||||
//
|
||||
|
||||
typedef struct _GDT_ENTRY {
|
||||
UINT16 Limit15_0;
|
||||
UINT16 Base15_0;
|
||||
UINT8 Base23_16;
|
||||
UINT8 Type;
|
||||
UINT8 Limit19_16_and_flags;
|
||||
UINT8 Base31_24;
|
||||
} GDT_ENTRY;
|
||||
|
||||
typedef
|
||||
struct _GDT_ENTRIES {
|
||||
GDT_ENTRY Null;
|
||||
GDT_ENTRY Linear;
|
||||
GDT_ENTRY LinearCode;
|
||||
GDT_ENTRY SysData;
|
||||
GDT_ENTRY SysCode;
|
||||
GDT_ENTRY LinearCode64;
|
||||
GDT_ENTRY Spare4;
|
||||
GDT_ENTRY Spare5;
|
||||
} GDT_ENTRIES;
|
||||
|
||||
#define NULL_SEL OFFSET_OF (GDT_ENTRIES, Null)
|
||||
#define LINEAR_SEL OFFSET_OF (GDT_ENTRIES, Linear)
|
||||
#define LINEAR_CODE_SEL OFFSET_OF (GDT_ENTRIES, LinearCode)
|
||||
#define SYS_DATA_SEL OFFSET_OF (GDT_ENTRIES, SysData)
|
||||
#define SYS_CODE_SEL OFFSET_OF (GDT_ENTRIES, SysCode)
|
||||
#define LINEAR_CODE64_SEL OFFSET_OF (GDT_ENTRIES, LinearCode64)
|
||||
#define SPARE4_SEL OFFSET_OF (GDT_ENTRIES, Spare4)
|
||||
#define SPARE5_SEL OFFSET_OF (GDT_ENTRIES, Spare5)
|
||||
|
||||
#if defined (MDE_CPU_IA32)
|
||||
#define CPU_CODE_SEL LINEAR_CODE_SEL
|
||||
#define CPU_DATA_SEL LINEAR_SEL
|
||||
#elif defined (MDE_CPU_X64)
|
||||
#define CPU_CODE_SEL LINEAR_CODE64_SEL
|
||||
#define CPU_DATA_SEL LINEAR_SEL
|
||||
#else
|
||||
#error CPU type not supported for CPU GDT initialization!
|
||||
#endif
|
||||
#include "CpuGdt.h"
|
||||
|
||||
//
|
||||
// Global descriptor table (GDT) Template
|
||||
|
Reference in New Issue
Block a user