summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormdkinney <mdkinney@6f19259b-4bc3-4df7-8a09-765794883524>2008-10-27 02:20:02 +0000
committermdkinney <mdkinney@6f19259b-4bc3-4df7-8a09-765794883524>2008-10-27 02:20:02 +0000
commitdc31771382e9892bedaa1dc917df8ec10a91be25 (patch)
treecb514089ab51c57181a2b0aab515d115a9a50b3c
parent8be701c3baf0ad82c38879f281e73d8676f5819e (diff)
downloadedk2-dc31771382e9892bedaa1dc917df8ec10a91be25.tar.gz
edk2-dc31771382e9892bedaa1dc917df8ec10a91be25.tar.bz2
edk2-dc31771382e9892bedaa1dc917df8ec10a91be25.zip
Add X64 Gate Descriptor
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6247 6f19259b-4bc3-4df7-8a09-765794883524
-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
///