From bfc9db8b6dc95b8c3a8816cb10b8e9f6e2c88b42 Mon Sep 17 00:00:00 2001 From: belliash Date: Wed, 25 Jan 2023 17:35:03 +0100 Subject: [PATCH] Unify KGDTENTRY and KIDTENTRY between architectures as much as possible --- sdk/xtdk/amd64/ketypes.h | 79 ++++++++++++++++++--------------------- sdk/xtdk/amd64/xtstruct.h | 6 +-- sdk/xtdk/i686/ketypes.h | 4 +- 3 files changed, 40 insertions(+), 49 deletions(-) diff --git a/sdk/xtdk/amd64/ketypes.h b/sdk/xtdk/amd64/ketypes.h index 7514926..560fbcf 100644 --- a/sdk/xtdk/amd64/ketypes.h +++ b/sdk/xtdk/amd64/ketypes.h @@ -182,57 +182,50 @@ typedef struct ALIGN(16) _CONTEXT } CONTEXT, *PCONTEXT; /* Global Descriptor Table (GDT) entry union definition */ -typedef union _KGDTENTRY +typedef struct _KGDTENTRY { - struct + USHORT LimitLow; + USHORT BaseLow; + union { - USHORT LimitLow; - USHORT BaseLow; - union + struct { - struct - { - UCHAR BaseMiddle; - UCHAR Flags1; - UCHAR Flags2; - UCHAR BaseHigh; - } Bytes; - struct { - ULONG BaseMiddle:8; - ULONG Type:5; - ULONG Dpl:2; - ULONG Present:1; - ULONG LimitHigh:4; - ULONG System:1; - ULONG LongMode:1; - ULONG DefaultBig:1; - ULONG Granularity:1; - ULONG BaseHigh:8; - } Bits; - }; - ULONG BaseUpper; - ULONG MustBeZero; + UCHAR BaseMiddle; + UCHAR Flags1; + UCHAR Flags2; + UCHAR BaseHigh; + } Bytes; + struct + { + ULONG BaseMiddle:8; + ULONG Type:5; + ULONG Dpl:2; + ULONG Present:1; + ULONG LimitHigh:4; + ULONG System:1; + ULONG LongMode:1; + ULONG DefaultBig:1; + ULONG Granularity:1; + ULONG BaseHigh:8; + } Bits; }; - ULONG64 Alignment; + ULONG BaseUpper; + ULONG MustBeZero; } KGDTENTRY, *PKGDTENTRY; /* Interrupt Descriptor Table (IDT) entry union definition */ -typedef union _KIDTENTRY +typedef struct _KIDTENTRY { - struct - { - USHORT OffsetLow; - USHORT Selector; - USHORT IstIndex:3; - USHORT Reserved0:5; - USHORT Type:5; - USHORT Dpl:2; - USHORT Present:1; - USHORT OffsetMiddle; - ULONG OffsetHigh; - ULONG Reserved1; - }; - ULONG64 Alignment; + USHORT OffsetLow; + USHORT Selector; + USHORT IstIndex:3; + USHORT Reserved0:5; + USHORT Type:5; + USHORT Dpl:2; + USHORT Present:1; + USHORT OffsetMiddle; + ULONG OffsetHigh; + ULONG Reserved1; } KIDTENTRY, *PKIDTENTRY; /* Task State Segment (TSS) structure definition */ diff --git a/sdk/xtdk/amd64/xtstruct.h b/sdk/xtdk/amd64/xtstruct.h index 9d18943..9e82743 100644 --- a/sdk/xtdk/amd64/xtstruct.h +++ b/sdk/xtdk/amd64/xtstruct.h @@ -22,12 +22,10 @@ typedef struct _CPUID_REGISTERS CPUID_REGISTERS, *PCPUID_REGISTERS; typedef struct _FLOATING_SAVE_AREA FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA; typedef struct _HARDWARE_PTE HARDWARE_PTE, *PHARDWARE_PTE; typedef struct _KEXCEPTION_FRAME KEXCEPTION_FRAME, *PKEXCEPTION_FRAME; +typedef struct _KGDTENTRY KGDTENTRY, *PKGDTENTRY; +typedef struct _KIDTENTRY KIDTENTRY, *PKIDTENTRY; typedef struct _KSWITCH_FRAME KSWITCH_FRAME, *PKSWITCH_FRAME; typedef struct _KTRAP_FRAME KTRAP_FRAME, *PKTRAP_FRAME; typedef struct _KTSS KTSS, *PKTSS; -/* Architecture-related unions forward references */ -typedef union _KGDTENTRY KGDTENTRY, *PKGDTENTRY; -typedef union _KIDTENTRY KIDTENTRY, *PKIDTENTRY; - #endif /* __XTDK_AMD64_XTSTRUCT_H */ diff --git a/sdk/xtdk/i686/ketypes.h b/sdk/xtdk/i686/ketypes.h index 057e2e5..e0af62c 100644 --- a/sdk/xtdk/i686/ketypes.h +++ b/sdk/xtdk/i686/ketypes.h @@ -155,7 +155,7 @@ typedef struct _KGDTENTRY } Bytes; struct { - ULONG BaseMid:8; + ULONG BaseMiddle:8; ULONG Type:5; ULONG Dpl:2; ULONG Present:1; @@ -166,7 +166,7 @@ typedef struct _KGDTENTRY ULONG Granularity:1; ULONG BaseHigh:8; } Bits; - } HighWord; + }; } KGDTENTRY, *PKGDTENTRY; /* Interrupt Descriptor Table (IDT) entry structure definition */