fixed one bug when declaring IA32_IDT_GATE_DESCRIPTOR.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6978 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
vanjeff 2008-12-10 09:29:06 +00:00
parent 9916492210
commit 6f4aad3b34
1 changed files with 23 additions and 19 deletions

View File

@ -5090,18 +5090,18 @@ typedef struct {
#define IA32_IDT_GATE_TYPE_INTERRUPT_32 0x8E #define IA32_IDT_GATE_TYPE_INTERRUPT_32 0x8E
#define IA32_IDT_GATE_TYPE_TRAP_32 0x8F #define IA32_IDT_GATE_TYPE_TRAP_32 0x8F
///
/// Byte packed structure for an Interrupt Gate Descriptor
///
#if defined (MDE_CPU_IA32)
#if defined (MDE_CPU_IA32)
///
/// Byte packed structure for an IA32 Interrupt Gate Descriptor
///
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;
@ -5109,19 +5109,23 @@ typedef union {
#endif #endif
#if defined (MDE_CPU_X64) #if defined (MDE_CPU_X64)
///
/// Byte packed structure for an x64 Interrupt Gate Descriptor
///
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
UINT32 OffsetUpper:32; // Offset bits 63..32 UINT32 OffsetUpper:32; ///< Offset bits 63..32
UINT32 Reserved_1:32; // Reserved UINT32 Reserved_1:32; ///< Reserved
} Bits; } Bits;
struct {
UINT64 Uint64; UINT64 Uint64;
UINT64 Uint64_1; UINT64 Uint64_1;
} Uint128;
} IA32_IDT_GATE_DESCRIPTOR; } IA32_IDT_GATE_DESCRIPTOR;
#endif #endif