Unify KGDTENTRY and KIDTENTRY between architectures as much as possible
All checks were successful
ci/woodpecker/push/build Pipeline was successful

This commit is contained in:
Rafal Kupiec 2023-01-25 17:35:03 +01:00
parent 3ee759cc27
commit bfc9db8b6d
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
3 changed files with 40 additions and 49 deletions

View File

@ -182,57 +182,50 @@ typedef struct ALIGN(16) _CONTEXT
} CONTEXT, *PCONTEXT; } CONTEXT, *PCONTEXT;
/* Global Descriptor Table (GDT) entry union definition */ /* Global Descriptor Table (GDT) entry union definition */
typedef union _KGDTENTRY typedef struct _KGDTENTRY
{ {
struct USHORT LimitLow;
USHORT BaseLow;
union
{ {
USHORT LimitLow; struct
USHORT BaseLow;
union
{ {
struct UCHAR BaseMiddle;
{ UCHAR Flags1;
UCHAR BaseMiddle; UCHAR Flags2;
UCHAR Flags1; UCHAR BaseHigh;
UCHAR Flags2; } Bytes;
UCHAR BaseHigh; struct
} Bytes; {
struct { ULONG BaseMiddle:8;
ULONG BaseMiddle:8; ULONG Type:5;
ULONG Type:5; ULONG Dpl:2;
ULONG Dpl:2; ULONG Present:1;
ULONG Present:1; ULONG LimitHigh:4;
ULONG LimitHigh:4; ULONG System:1;
ULONG System:1; ULONG LongMode:1;
ULONG LongMode:1; ULONG DefaultBig:1;
ULONG DefaultBig:1; ULONG Granularity:1;
ULONG Granularity:1; ULONG BaseHigh:8;
ULONG BaseHigh:8; } Bits;
} Bits;
};
ULONG BaseUpper;
ULONG MustBeZero;
}; };
ULONG64 Alignment; ULONG BaseUpper;
ULONG MustBeZero;
} KGDTENTRY, *PKGDTENTRY; } KGDTENTRY, *PKGDTENTRY;
/* Interrupt Descriptor Table (IDT) entry union definition */ /* Interrupt Descriptor Table (IDT) entry union definition */
typedef union _KIDTENTRY typedef struct _KIDTENTRY
{ {
struct USHORT OffsetLow;
{ USHORT Selector;
USHORT OffsetLow; USHORT IstIndex:3;
USHORT Selector; USHORT Reserved0:5;
USHORT IstIndex:3; USHORT Type:5;
USHORT Reserved0:5; USHORT Dpl:2;
USHORT Type:5; USHORT Present:1;
USHORT Dpl:2; USHORT OffsetMiddle;
USHORT Present:1; ULONG OffsetHigh;
USHORT OffsetMiddle; ULONG Reserved1;
ULONG OffsetHigh;
ULONG Reserved1;
};
ULONG64 Alignment;
} KIDTENTRY, *PKIDTENTRY; } KIDTENTRY, *PKIDTENTRY;
/* Task State Segment (TSS) structure definition */ /* Task State Segment (TSS) structure definition */

View File

@ -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 _FLOATING_SAVE_AREA FLOATING_SAVE_AREA, *PFLOATING_SAVE_AREA;
typedef struct _HARDWARE_PTE HARDWARE_PTE, *PHARDWARE_PTE; typedef struct _HARDWARE_PTE HARDWARE_PTE, *PHARDWARE_PTE;
typedef struct _KEXCEPTION_FRAME KEXCEPTION_FRAME, *PKEXCEPTION_FRAME; 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 _KSWITCH_FRAME KSWITCH_FRAME, *PKSWITCH_FRAME;
typedef struct _KTRAP_FRAME KTRAP_FRAME, *PKTRAP_FRAME; typedef struct _KTRAP_FRAME KTRAP_FRAME, *PKTRAP_FRAME;
typedef struct _KTSS KTSS, *PKTSS; 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 */ #endif /* __XTDK_AMD64_XTSTRUCT_H */

View File

@ -155,7 +155,7 @@ typedef struct _KGDTENTRY
} Bytes; } Bytes;
struct struct
{ {
ULONG BaseMid:8; ULONG BaseMiddle:8;
ULONG Type:5; ULONG Type:5;
ULONG Dpl:2; ULONG Dpl:2;
ULONG Present:1; ULONG Present:1;
@ -166,7 +166,7 @@ typedef struct _KGDTENTRY
ULONG Granularity:1; ULONG Granularity:1;
ULONG BaseHigh:8; ULONG BaseHigh:8;
} Bits; } Bits;
} HighWord; };
} KGDTENTRY, *PKGDTENTRY; } KGDTENTRY, *PKGDTENTRY;
/* Interrupt Descriptor Table (IDT) entry structure definition */ /* Interrupt Descriptor Table (IDT) entry structure definition */