summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--MdePkg/Include/Library/BaseLib.h32
1 files changed, 27 insertions, 5 deletions
diff --git a/MdePkg/Include/Library/BaseLib.h b/MdePkg/Include/Library/BaseLib.h
index 24f93c9bb1..01d7f0eea9 100644
--- a/MdePkg/Include/Library/BaseLib.h
+++ b/MdePkg/Include/Library/BaseLib.h
@@ -5079,17 +5079,39 @@ typedef struct {
///
/// Byte packed structure for an Interrupt Gate Descriptor
///
+#if defined (MDE_CPU_IA32)
+
+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
+ } Bits;
+ UINT64 Uint64;
+} 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 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
///