Add X64 Gate Descriptor

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6247 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
mdkinney 2008-10-27 02:20:02 +00:00
parent 8be701c3ba
commit dc31771382
1 changed files with 27 additions and 5 deletions

View File

@ -5079,17 +5079,39 @@ typedef struct {
/// ///
/// Byte packed structure for an Interrupt Gate Descriptor /// Byte packed structure for an Interrupt Gate Descriptor
/// ///
#if defined (MDE_CPU_IA32)
typedef union { typedef union {
struct { struct {
UINT32 OffsetLow:16; /// Offset bits 15..0 UINT32 OffsetLow:16; // Offset bits 15..0
UINT32 Selector:16; /// Selector UINT32 Selector:16; // Selector
UINT32 Reserved_0:8; /// Reserved UINT32 Reserved_0:8; // Reserved
UINT32 GateType:8; /// Gate Type. See #defines above UINT32 GateType:8; // Gate Type. See #defines above
UINT32 OffsetHigh:16; /// Offset bits 31..16 UINT32 OffsetHigh:16; // Offset bits 31..16
} Bits; } Bits;
UINT64 Uint64; UINT64 Uint64;
} IA32_IDT_GATE_DESCRIPTOR; } IA32_IDT_GATE_DESCRIPTOR;
#endif
#if defined (MDE_CPU_X64)
typedef union {
struct {
UINT32 OffsetLow:16; // Offset bits 15..0
UINT32 Selector:16; // Selector
UINT32 Reserved_0:8; // Reserved
UINT32 GateType:8; // Gate Type. See #defines above
UINT32 OffsetHigh:16; // Offset bits 31..16
UINT32 OffsetUpper:32; // Offset bits 63..32
UINT32 Reserved_1:32; // Reserved
} Bits;
UINT64 Uint64;
UINT64 Uint64_1;
} IA32_IDT_GATE_DESCRIPTOR;
#endif
/// ///
/// Byte packed structure for an FP/SSE/SSE2 context /// Byte packed structure for an FP/SSE/SSE2 context
/// ///