19#ifndef _I386_KETYPES_H
20#define _I386_KETYPES_H
29#define K0IPCR ((ULONG_PTR)(KIP0PCRADDRESS))
30#define PCR ((KPCR *)K0IPCR)
31#if defined(CONFIG_SMP) || defined(NT_BUILD)
33#define KeGetPcr() ((KPCR *)__readfsdword(FIELD_OFFSET(KPCR, SelfPcr)))
55#define MACHINE_TYPE_ISA 0x0000
56#define MACHINE_TYPE_EISA 0x0001
57#define MACHINE_TYPE_MCA 0x0002
62#define I386_TASK_GATE 0x5
64#define I386_ACTIVE_TSS 0xB
65#define I386_CALL_GATE 0xC
66#define I386_INTERRUPT_GATE 0xE
67#define I386_TRAP_GATE 0xF
72#define RPL_MASK 0x0003
73#define MODE_MASK 0x0001
75#define KGDT_R0_CODE 0x08
76#define KGDT_R0_DATA 0x10
77#define KGDT_R3_CODE 0x18
78#define KGDT_R3_DATA 0x20
80#define KGDT_R0_PCR 0x30
81#define KGDT_R3_TEB 0x38
82#define KGDT_VDM_TILE 0x40
84#define KGDT_DF_TSS 0x50
85#define KGDT_NMI_TSS 0x58
103#define CR4_FXSR 0x200
104#define CR4_XMMEXCPT 0x400
109#define EFLAGS_CF 0x01L
110#define EFLAGS_ZF 0x40L
111#define EFLAGS_TF 0x100L
112#define EFLAGS_INTERRUPT_MASK 0x200L
113#define EFLAGS_DF 0x400L
114#define EFLAGS_IOPL 0x3000L
115#define EFLAGS_NESTED_TASK 0x4000L
116#define EFLAGS_RF 0x10000
117#define EFLAGS_V86_MASK 0x20000
118#define EFLAGS_ALIGN_CHECK 0x40000
119#define EFLAGS_VIF 0x80000
120#define EFLAGS_VIP 0x100000
121#define EFLAGS_ID 0x200000
122#define EFLAGS_USER_SANITIZE 0x3F4DD7
123#define EFLAG_SIGN 0x8000
124#define EFLAG_ZERO 0x4000
129#define FSW_INVALID_OPERATION 0x1
130#define FSW_DENORMAL 0x2
131#define FSW_ZERO_DIVIDE 0x4
132#define FSW_OVERFLOW 0x8
133#define FSW_UNDERFLOW 0x10
134#define FSW_PRECISION 0x20
135#define FSW_STACK_FAULT 0x40
140#define MSR_AMD_ACCESS 0x9C5A203A
141#define MSR_IA32_MISC_ENABLE 0x01A0
142#define MSR_EFER 0xC0000080
147#define MSR_NXE 0x0800
148#define XHF_NOEXECUTE 0x100000
149#define MSR_XD_ENABLE_MASK 0xFFFFFFFB
157#define IPI_PACKET_READY 8
158#define IPI_SYNCH_REQUEST 16
163#define PRCB_MINOR_VERSION 1
164#define PRCB_MAJOR_VERSION 1
165#define PRCB_BUILD_DEBUG 1
166#define PRCB_BUILD_UNIPROCESSOR 2
171#define INITIAL_STALL_COUNT 100
172#define MM_HAL_VA_START 0xFFC00000
173#define MM_HAL_VA_END 0xFFFFFFFF
174#define APIC_BASE 0xFFFE0000
180#define IOPM_SIZE 8192
181#define IOPM_FULL_SIZE 8196
182#define IO_ACCESS_MAP_NONE 0
183#define IOPM_DIRECTION_MAP_SIZE 32
184#define IOPM_OFFSET FIELD_OFFSET(KTSS, IoMaps[0].IoMap)
185#define KiComputeIopmOffset(MapNumber) \
186 (MapNumber == IO_ACCESS_MAP_NONE) ? \
187 (USHORT)(sizeof(KTSS)) : \
188 (USHORT)(FIELD_OFFSET(KTSS, IoMaps[MapNumber-1].IoMap))
197#define SIZE_OF_FX_REGISTERS 128
202#define KSEG0_BASE 0x80000000
208#define SYNCH_LEVEL DISPATCH_LEVEL
210#if (NTDDI_VERSION < NTDDI_WS03)
211#define SYNCH_LEVEL (IPI_LEVEL - 1)
213#define SYNCH_LEVEL (IPI_LEVEL - 2)
220#define NUMBER_POOL_LOOKASIDE_LISTS 32
299#ifndef _LDT_ENTRY_DEFINED
300#define _LDT_ENTRY_DEFINED
400#ifndef NTOS_MODE_USER
507#if (NTDDI_VERSION >= NTDDI_LONGHORN)
525#if (NTDDI_VERSION >= NTDDI_WS03)
527#if (NTDDI_VERSION >= NTDDI_LONGHORN)
539#if (NTDDI_VERSION >= NTDDI_WS03)
541#if (NTDDI_VERSION >= NTDDI_LONGHORN)
547 ULONG ThreadStartCount[2];
555#if (NTDDI_VERSION < NTDDI_LONGHORN)
559#if (NTDDI_VERSION < NTDDI_LONGHORN)
562 ULONG KeFirstLevelTbFills;
563 ULONG KeFloatingEmulationCount;
565 ULONG KeSecondLevelTbFills;
574#if (NTDDI_VERSION >= NTDDI_LONGHORN)
606 ULONG SpareCounter1[8];
643#if (NTDDI_VERSION >= NTDDI_LONGHORN)
653#if (NTDDI_VERSION >= NTDDI_LONGHORN)
669#if (NTDDI_VERSION >= NTDDI_LONGHORN)
695#if (NTDDI_VERSION >= NTDDI_LONGHORN)
702 ULONG SpareFields0[1];
714#if (NTDDI_VERSION >= NTDDI_LONGHORN)
PPC_QUAL unsigned long __readfsdword(const unsigned long Offset)
struct _KSPECIAL_REGISTERS * PKSPECIAL_REGISTERS
struct _KIDT_ACCESS KIDT_ACCESS
struct _KTRAP_FRAME KTRAP_FRAME
struct _KDESCRIPTOR * PKDESCRIPTOR
struct _KPROCESSOR_STATE * PKPROCESSOR_STATE
#define NUMBER_POOL_LOOKASIDE_LISTS
KEXCEPTION_FRAME KCALLOUT_FRAME
struct _KEXCEPTION_FRAME * PKEXCEPTION_FRAME
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
struct _KiIoAccessMap KIIO_ACCESS_MAP
struct _KDESCRIPTOR KDESCRIPTOR
KEXCEPTION_FRAME * PKCALLOUT_FRAME
struct _KTRAP_FRAME * PKTRAP_FRAME
struct _KSPECIAL_REGISTERS KSPECIAL_REGISTERS
union _CPU_INFO * PCPU_INFO
struct _KIDT_ACCESS * PKIDT_ACCESS
struct _KPROCESSOR_STATE KPROCESSOR_STATE
struct _KGDTENTRY KGDTENTRY
struct _KIDTENTRY * PKIDTENTRY
UCHAR KIO_ACCESS_MAP[IOPM_SIZE]
struct _FX_SAVE_AREA * PFX_SAVE_AREA
struct _FXSAVE_FORMAT * PFXSAVE_FORMAT
enum _WOW64_SERVICE_TYPES * PWOW64_SERVICE_TYPES
struct _KIDTENTRY KIDTENTRY
enum _WOW64_SERVICE_TYPES WOW64_SERVICE_TYPES
enum _VDM_INDEX VDM_INDEX
struct _FXSAVE_FORMAT FXSAVE_FORMAT
struct _FX_SAVE_AREA FX_SAVE_AREA
struct _LDT_ENTRY * LPLDT_ENTRY
struct _FNSAVE_FORMAT * PFNSAVE_FORMAT
KIO_ACCESS_MAP * PKIO_ACCESS_MAP
struct _FNSAVE_FORMAT FNSAVE_FORMAT
#define IOPM_DIRECTION_MAP_SIZE
struct _KGDTENTRY * PKGDTENTRY
enum _VDM_INDEX * PVDM_INDEX
@ Service4ArgSpSpNSpNSpReloadState
@ Service4ArgSpNSpNSpNSpReloadState
@ ServiceCpupTdReadWriteFile
@ ServiceCpupTdWaitForMultipleObjects
@ Service3ArgSpNSpNSpReloadState
@ Service2ArgNSpNSpReloadState
@ Service4ArgNSpNSpNSpNSp
@ ServiceCpupTdQuerySystemTime
@ ServiceCpupTdGetCurrentProcessorNumber
@ ServiceCpupTdRemoveIoCompletion
@ ServiceCpupTdWaitForMultipleObjects32
@ ServiceCpupTdDeviceIoControlFile
#define SIZE_OF_FX_REGISTERS
struct _LDT_ENTRY * PLDT_ENTRY
union _FX_SAVE_AREA::@2433 U
struct _KGDTENTRY::@2426::@2428 Bits
union _KGDTENTRY::@2426 HighWord
struct _KGDTENTRY::@2426::@2427 Bytes
ULONG SecondLevelCacheSize
UCHAR SecondLevelCacheAssociativity
PVOID PerfGlobalGroupMask
ULONG KernelReserved2[17]
struct _EXCEPTION_REGISTRATION_RECORD * Used_ExceptionList
volatile ULONG IoWriteOperationCount
ULONG CcCopyReadNoWaitMiss
ULONG CcLostDelayedWrites
volatile BOOLEAN QuantumEnd
KSPIN_LOCK_QUEUE LockQueue[LockQueueMaximumLock]
PROCESSOR_POWER_STATE PowerState
struct _KTHREAD * IdleThread
GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
volatile UCHAR DpcThreadActive
volatile UCHAR DpcInterruptRequested
struct _KPRCB * MultiThreadSetMaster
volatile LARGE_INTEGER IsrTime
volatile ULONG IoReadOperationCount
volatile LONG MmDemandZeroCount
volatile LONG MmPageReadIoCount
volatile UCHAR DpcRoutineActive
volatile PKIPI_WORKER WorkerRoutine
LONG ThreadWatchdogPeriod
volatile UCHAR IdleSchedule
volatile ULONG ReverseStall
PVOID ChainedInterruptList
ULONG CcPinReadNoWaitMiss
volatile ULONG IoOtherOperationCount
volatile LONG MmMappedWriteIoCount
volatile LONG MmCacheIoCount
GENERAL_LOOKASIDE_POOL PPPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
ULONG CachedResidentAvailable
volatile LONG MmTransitionCount
ULONG CcPinMappedDataCount
ULONG CcMdlReadNoWaitMiss
volatile LONG MmCopyOnWriteCount
volatile ULONG PacketBarrier
ULONG MaximumDpcQueueDepth
volatile LONG MmCacheReadCount
UCHAR LogicalProcessorsPerPhysicalProcessor
LARGE_INTEGER HyperCallPagePhysical
volatile struct _KPRCB * SignalDone
PP_LOOKASIDE_LIST PPLookasideList[16]
ULONG CcMapDataNoWaitMiss
ULONG KeExceptionDispatchCount
ULONG CcFastMdlReadNoWait
volatile LONG MmDirtyPagesWriteCount
struct _KTHREAD * CurrentThread
LARGE_INTEGER IoReadTransferCount
struct _KTHREAD * NextThread
volatile UCHAR DpcThreadRequested
ULONG CcFastReadResourceMiss
LARGE_INTEGER IoOtherTransferCount
volatile LONG MmMappedPagesWriteCount
ULONG MultiThreadProcessorSet
volatile LONG MmPageFaultCount
volatile LONG MmDirtyWriteIoCount
UINT64 CacheProcessorMask[5]
struct _KNODE * ParentNode
volatile LONG MmPageReadCount
volatile ULONG TimerRequest
UCHAR LogicalProcessorsPerCore
LARGE_INTEGER UpdateSignature
KPROCESSOR_STATE ProcessorState
volatile LONG MmCacheTransitionCount
struct _KTHREAD * NpxThread
LIST_ENTRY DispatcherReadyListHead[32]
ULONG CcFastMdlReadNotPossible
LARGE_INTEGER SpareField1
LARGE_INTEGER HyperCallPageVirtual
LARGE_INTEGER IoWriteTransferCount
volatile ULONG RequestSummary
ULONG CcLazyWriteHotSpots
volatile PVOID CurrentPacket[3]
ULONG KeAlignmentFixupCount
ULONG CcFastReadNotPossible
SINGLE_LIST_ENTRY DeferredReadyListHead
ULONG CcFastMdlReadResourceMiss
ULONG PackageProcessorSet
SLIST_HEADER InterruptObjectPool
KSPECIAL_REGISTERS SpecialRegisters
ULONG PreviousPreviousMode
struct _EXCEPTION_REGISTRATION_RECORD FAR * ExceptionList
UCHAR IntDirectionMap[IOPM_DIRECTION_MAP_SIZE]
KIIO_ACCESS_MAP IoMaps[IOPM_COUNT]
union _LDT_ENTRY::@347 HighWord
struct _LDT_ENTRY::@347::@349 Bits
struct _LDT_ENTRY::@347::@348 Bytes
#define FIELD_OFFSET(t, f)
_Reserved_ PVOID Reserved
VOID(NTAPI * PKIPI_WORKER)(IN OUT PKIPI_CONTEXT PacketContext, IN PVOID Parameter1 OPTIONAL, IN PVOID Parameter2 OPTIONAL, IN PVOID Parameter3 OPTIONAL)