Windows2000/private/ntos/inc/halmips.h
2020-09-30 17:12:32 +02:00

630 lines
13 KiB
C

#include "kxmips.h"
// Wait Reason and Wait Type Enumerated Type Values
#define WrExecutive 0x0
// Bug Check Code Definitions
#define APC_INDEX_MISMATCH 0x1
#define DATA_BUS_ERROR 0x2e
#define DATA_COHERENCY_EXCEPTION 0x55
#define HAL1_INITIALIZATION_FAILED 0x61
#define INSTRUCTION_BUS_ERROR 0x2f
#define INSTRUCTION_COHERENCY_EXCEPTION 0x56
#define INTERRUPT_EXCEPTION_NOT_HANDLED 0x3d
#define INTERRUPT_UNWIND_ATTEMPTED 0x3c
#define INVALID_AFFINITY_SET 0x3
#define INVALID_DATA_ACCESS_TRAP 0x4
#define IRQL_GT_ZERO_AT_SYSTEM_SERVICE 0x4a
#define IRQL_NOT_LESS_OR_EQUAL 0xa
#define KMODE_EXCEPTION_NOT_HANDLED 0x1e
#define NMI_HARDWARE_FAILURE 0x80
#define NO_USER_MODE_CONTEXT 0xe
#define PAGE_FAULT_WITH_INTERRUPTS_OFF 0x49
#define PANIC_STACK_SWITCH 0x2b
#define SPIN_LOCK_INIT_FAILURE 0x81
#define SYSTEM_EXIT_OWNED_MUTEX 0x39
#define SYSTEM_SERVICE_EXCEPTION 0x3b
#define SYSTEM_UNWIND_PREVIOUS_USER 0x3a
#define TRAP_CAUSE_UNKNOWN 0x12
#define UNEXPECTED_KERNEL_MODE_TRAP 0x7f
// Breakpoint type definitions
#define DBG_STATUS_CONTROL_C 0x1
// Exception Record Offset, Flag, and Enumerated Type Definitions
#define EXCEPTION_NONCONTINUABLE 0x1
#define EXCEPTION_UNWINDING 0x2
#define EXCEPTION_EXIT_UNWIND 0x4
#define EXCEPTION_STACK_INVALID 0x8
#define EXCEPTION_NESTED_CALL 0x10
#define EXCEPTION_TARGET_UNWIND 0x20
#define EXCEPTION_COLLIDED_UNWIND 0x40
#define EXCEPTION_UNWIND 0x66
#define EXCEPTION_EXECUTE_HANDLER 0x1
#define EXCEPTION_CONTINUE_SEARCH 0x0
#define EXCEPTION_CONTINUE_EXECUTION 0xffffffff
#define ExceptionContinueExecution 0x0
#define ExceptionContinueSearch 0x1
#define ExceptionNestedException 0x2
#define ExceptionCollidedUnwind 0x3
#define ErExceptionCode 0x0
#define ErExceptionFlags 0x4
#define ErExceptionRecord 0x8
#define ErExceptionAddress 0xc
#define ErNumberParameters 0x10
#define ErExceptionInformation 0x14
#define ExceptionRecordLength 0x50
// Fast Mutex Structure Offset Definitions
#define FmCount 0x0
#define FmOwner 0x4
#define FmContention 0x8
#define FmEvent 0xc
#define FmOldIrql 0x1c
// Interrupt Priority Request Level Definitions
#define APC_LEVEL 0x1
#define DISPATCH_LEVEL 0x2
#define IPI_LEVEL 0x7
#define POWER_LEVEL 0x7
#define PROFILE_LEVEL 0x8
#define HIGH_LEVEL 0x8
#define SYNCH_LEVEL 0x6
// Large Integer Structure Offset Definitions
#define LiLowPart 0x0
#define LiHighPart 0x4
// List Entry Structure Offset Definitions
#define LsFlink 0x0
#define LsBlink 0x4
// String Structure Offset Definitions
#define StrLength 0x0
#define StrMaximumLength 0x2
#define StrBuffer 0x4
// System Time Structure Offset Definitions
#define StLowTime 0x0
#define StHigh1Time 0x4
#define StHigh2Time 0x8
// Time Structure Offset Definitions
#define TmLowTime 0x0
#define TmHighTime 0x4
// DPC object Structure Offset Definitions
#define DpType 0x0
#define DpNumber 0x2
#define DpImportance 0x3
#define DpDpcListEntry 0x4
#define DpDeferredRoutine 0xc
#define DpDeferredContext 0x10
#define DpSystemArgument1 0x14
#define DpSystemArgument2 0x18
#define DpLock 0x1c
#define DpcObjectLength 0x20
// Interrupt Object Structure Offset Definitions
#define InLevelSensitive 0x0
#define InLatched 0x1
#define InType 0x0
#define InSize 0x2
#define InInterruptListEntry 0x4
#define InServiceRoutine 0xc
#define InServiceContext 0x10
#define InSpinLock 0x14
#define InActualLock 0x1c
#define InDispatchAddress 0x20
#define InVector 0x24
#define InIrql 0x28
#define InSynchronizeIrql 0x29
#define InFloatingSave 0x2a
#define InConnected 0x2b
#define InNumber 0x2c
#define InMode 0x30
#define InShareVector 0x2d
#define InDispatchCode 0x3c
#define InterruptObjectLength 0x4c
// Processor Block Structure Offset Definitions
#define PRCB_MINOR_VERSION 0x1
#define PRCB_MAJOR_VERSION 0x1
#define PbMinorVersion 0x0
#define PbMajorVersion 0x2
#define PbCurrentThread 0x4
#define PbNextThread 0x8
#define PbIdleThread 0xc
#define PbNumber 0x10
#define PbSetMember 0x14
#define PbRestartBlock 0x18
#define PbSystemReserved 0x20
#define PbHalReserved 0x60
// Processor Control Registers Structure Offset Definitions
#define PCR_MINOR_VERSION 0x1
#define PCR_MAJOR_VERSION 0x1
#define PcMinorVersion 0x0
#define PcMajorVersion 0x2
#define PcInterruptRoutine 0x4
#define PcXcodeDispatch 0x404
#define PcFirstLevelDcacheSize 0x484
#define PcFirstLevelDcacheFillSize 0x488
#define PcFirstLevelIcacheSize 0x48c
#define PcFirstLevelIcacheFillSize 0x490
#define PcSecondLevelDcacheSize 0x494
#define PcSecondLevelDcacheFillSize 0x498
#define PcSecondLevelIcacheSize 0x49c
#define PcSecondLevelIcacheFillSize 0x4a0
#define PcPrcb 0x4a4
#define PcTeb 0x4a8
#define PcTlsArray 0x4ac
#define PcDcacheFillSize 0x4b0
#define PcIcacheAlignment 0x4b4
#define PcIcacheFillSize 0x4b8
#define PcProcessorId 0x4bc
#define PcProfileInterval 0x4c0
#define PcProfileCount 0x4c4
#define PcStallExecutionCount 0x4c8
#define PcStallScaleFactor 0x4cc
#define PcNumber 0x4d0
#define PcDataBusError 0x4d4
#define PcInstructionBusError 0x4d8
#define PcCachePolicy 0x4dc
#define PcIrqlMask 0x4e0
#define PcIrqlTable 0x500
#define PcCurrentIrql 0x509
#define PcSetMember 0x50c
#define PcCurrentThread 0x514
#define PcAlignedCachePolicy 0x518
#define PcNotMember 0x51c
#define PcSystemReserved 0x520
#define PcDcacheAlignment 0x55c
#define PcHalReserved 0x560
// Context Frame Offset and Flag Definitions
#define CONTEXT_FULL 0x10017
#define CONTEXT_CONTROL 0x10001
#define CONTEXT_FLOATING_POINT 0x10002
#define CONTEXT_INTEGER 0x10004
#define CONTEXT_EXTENDED_FLOAT 0x1000a
#define CONTEXT_EXTENDED_INTEGER 0x10014
// 32-bit Context Frame Offset Definitions
#define CxFltF0 0x10
#define CxFltF1 0x14
#define CxFltF2 0x18
#define CxFltF3 0x1c
#define CxFltF4 0x20
#define CxFltF5 0x24
#define CxFltF6 0x28
#define CxFltF7 0x2c
#define CxFltF8 0x30
#define CxFltF9 0x34
#define CxFltF10 0x38
#define CxFltF11 0x3c
#define CxFltF12 0x40
#define CxFltF13 0x44
#define CxFltF14 0x48
#define CxFltF15 0x4c
#define CxFltF16 0x50
#define CxFltF17 0x54
#define CxFltF18 0x58
#define CxFltF19 0x5c
#define CxFltF20 0x60
#define CxFltF21 0x64
#define CxFltF22 0x68
#define CxFltF23 0x6c
#define CxFltF24 0x70
#define CxFltF25 0x74
#define CxFltF26 0x78
#define CxFltF27 0x7c
#define CxFltF28 0x80
#define CxFltF29 0x84
#define CxFltF30 0x88
#define CxFltF31 0x8c
#define CxIntZero 0x90
#define CxIntAt 0x94
#define CxIntV0 0x98
#define CxIntV1 0x9c
#define CxIntA0 0xa0
#define CxIntA1 0xa4
#define CxIntA2 0xa8
#define CxIntA3 0xac
#define CxIntT0 0xb0
#define CxIntT1 0xb4
#define CxIntT2 0xb8
#define CxIntT3 0xbc
#define CxIntT4 0xc0
#define CxIntT5 0xc4
#define CxIntT6 0xc8
#define CxIntT7 0xcc
#define CxIntS0 0xd0
#define CxIntS1 0xd4
#define CxIntS2 0xd8
#define CxIntS3 0xdc
#define CxIntS4 0xe0
#define CxIntS5 0xe4
#define CxIntS6 0xe8
#define CxIntS7 0xec
#define CxIntT8 0xf0
#define CxIntT9 0xf4
#define CxIntK0 0xf8
#define CxIntK1 0xfc
#define CxIntGp 0x100
#define CxIntSp 0x104
#define CxIntS8 0x108
#define CxIntRa 0x10c
#define CxIntLo 0x110
#define CxIntHi 0x114
#define CxFsr 0x118
#define CxFir 0x11c
#define CxPsr 0x120
#define CxContextFlags 0x124
// 64-bit Context Frame Offset Definitions
#define CxXFltF0 0x10
#define CxXFltF1 0x18
#define CxXFltF2 0x20
#define CxXFltF3 0x28
#define CxXFltF4 0x30
#define CxXFltF5 0x38
#define CxXFltF6 0x40
#define CxXFltF7 0x48
#define CxXFltF8 0x50
#define CxXFltF9 0x58
#define CxXFltF10 0x60
#define CxXFltF11 0x68
#define CxXFltF12 0x70
#define CxXFltF13 0x78
#define CxXFltF14 0x80
#define CxXFltF15 0x88
#define CxXFltF16 0x90
#define CxXFltF17 0x98
#define CxXFltF18 0xa0
#define CxXFltF19 0xa8
#define CxXFltF20 0xb0
#define CxXFltF21 0xb8
#define CxXFltF22 0xc0
#define CxXFltF23 0xc8
#define CxXFltF24 0xd0
#define CxXFltF25 0xd8
#define CxXFltF26 0xe0
#define CxXFltF27 0xe8
#define CxXFltF28 0xf0
#define CxXFltF29 0xf8
#define CxXFltF30 0x100
#define CxXFltF31 0x108
#define CxXFsr 0x118
#define CxXFir 0x11c
#define CxXPsr 0x120
#define CxXContextFlags 0x124
#define CxXIntZero 0x128
#define CxXIntAt 0x130
#define CxXIntV0 0x138
#define CxXIntV1 0x140
#define CxXIntA0 0x148
#define CxXIntA1 0x150
#define CxXIntA2 0x158
#define CxXIntA3 0x160
#define CxXIntT0 0x168
#define CxXIntT1 0x170
#define CxXIntT2 0x178
#define CxXIntT3 0x180
#define CxXIntT4 0x188
#define CxXIntT5 0x190
#define CxXIntT6 0x198
#define CxXIntT7 0x1a0
#define CxXIntS0 0x1a8
#define CxXIntS1 0x1b0
#define CxXIntS2 0x1b8
#define CxXIntS3 0x1c0
#define CxXIntS4 0x1c8
#define CxXIntS5 0x1d0
#define CxXIntS6 0x1d8
#define CxXIntS7 0x1e0
#define CxXIntT8 0x1e8
#define CxXIntT9 0x1f0
#define CxXIntK0 0x1f8
#define CxXIntK1 0x200
#define CxXIntGp 0x208
#define CxXIntSp 0x210
#define CxXIntS8 0x218
#define CxXIntRa 0x220
#define CxXIntLo 0x228
#define CxXIntHi 0x230
#define ContextFrameLength 0x238
// Exception Frame Offset Definitions and Length
#define ExArgs 0x0
// 32-bit Nonvolatile Floating State
#define ExFltF20 0x20
#define ExFltF21 0x24
#define ExFltF22 0x28
#define ExFltF23 0x2c
#define ExFltF24 0x30
#define ExFltF25 0x34
#define ExFltF26 0x38
#define ExFltF27 0x3c
#define ExFltF28 0x40
#define ExFltF29 0x44
#define ExFltF30 0x48
#define ExFltF31 0x4c
// 64-bit Nonvolatile Floating State
#define ExXFltF20 0x20
#define ExXFltF22 0x28
#define ExXFltF24 0x30
#define ExXFltF26 0x38
#define ExXFltF28 0x40
#define ExXFltF30 0x48
// 32-bit Nonvolatile Integer State
#define ExIntS0 0x50
#define ExIntS1 0x54
#define ExIntS2 0x58
#define ExIntS3 0x5c
#define ExIntS4 0x60
#define ExIntS5 0x64
#define ExIntS6 0x68
#define ExIntS7 0x6c
#define ExIntS8 0x70
#define ExSwapReturn 0x74
#define ExIntRa 0x78
#define ExceptionFrameLength 0x80
// Trap Frame Offset Definitions and Length
#define TrArgs 0x0
// 32-bit Volatile Floating State
#define TrFltF0 0x10
#define TrFltF1 0x14
#define TrFltF2 0x18
#define TrFltF3 0x1c
#define TrFltF4 0x20
#define TrFltF5 0x24
#define TrFltF6 0x28
#define TrFltF7 0x2c
#define TrFltF8 0x30
#define TrFltF9 0x34
#define TrFltF10 0x38
#define TrFltF11 0x3c
#define TrFltF12 0x40
#define TrFltF13 0x44
#define TrFltF14 0x48
#define TrFltF15 0x4c
#define TrFltF16 0x50
#define TrFltF17 0x54
#define TrFltF18 0x58
#define TrFltF19 0x5c
// 64-bit Volatile Floating State
#define TrXFltF0 0x10
#define TrXFltF1 0x18
#define TrXFltF2 0x20
#define TrXFltF3 0x28
#define TrXFltF4 0x30
#define TrXFltF5 0x38
#define TrXFltF6 0x40
#define TrXFltF7 0x48
#define TrXFltF8 0x50
#define TrXFltF9 0x58
#define TrXFltF10 0x60
#define TrXFltF11 0x68
#define TrXFltF12 0x70
#define TrXFltF13 0x78
#define TrXFltF14 0x80
#define TrXFltF15 0x88
#define TrXFltF16 0x90
#define TrXFltF17 0x98
#define TrXFltF18 0xa0
#define TrXFltF19 0xa8
#define TrXFltF21 0xb0
#define TrXFltF23 0xb8
#define TrXFltF25 0xc0
#define TrXFltF27 0xc8
#define TrXFltF29 0xd0
#define TrXFltF31 0xd8
// 64-bit Volatile Integer State
#define TrXIntZero 0xe0
#define TrXIntAt 0xe8
#define TrXIntV0 0xf0
#define TrXIntV1 0xf8
#define TrXIntA0 0x100
#define TrXIntA1 0x108
#define TrXIntA2 0x110
#define TrXIntA3 0x118
#define TrXIntT0 0x120
#define TrXIntT1 0x128
#define TrXIntT2 0x130
#define TrXIntT3 0x138
#define TrXIntT4 0x140
#define TrXIntT5 0x148
#define TrXIntT6 0x150
#define TrXIntT7 0x158
#define TrXIntS0 0x160
#define TrXIntS1 0x168
#define TrXIntS2 0x170
#define TrXIntS3 0x178
#define TrXIntS4 0x180
#define TrXIntS5 0x188
#define TrXIntS6 0x190
#define TrXIntS7 0x198
#define TrXIntT8 0x1a0
#define TrXIntT9 0x1a8
#define TrXIntGp 0x1c0
#define TrXIntSp 0x1c8
#define TrXIntS8 0x1d0
#define TrXIntRa 0x1d8
#define TrXIntLo 0x1e0
#define TrXIntHi 0x1e8
#define TrFir 0x1f4
#define TrFsr 0x1f0
#define TrPsr 0x1f8
#define TrExceptionRecord 0x1fc
#define TrOldIrql 0x24c
#define TrPreviousMode 0x24d
#define TrSavedFlag 0x24e
#define TrOnInterruptStack 0x250
#define TrTrapFrame 0x250
#define TrapFrameLength 0x258
#define TrapFrameArguments 0x40
// Loader Parameter Block Offset Definitions
#define LpbLoadOrderListHead 0x0
#define LpbMemoryDescriptorListHead 0x8
#define LpbKernelStack 0x18
#define LpbPrcb 0x1c
#define LpbProcess 0x20
#define LpbThread 0x24
#define LpbInterruptStack 0x5c
#define LpbFirstLevelDcacheSize 0x60
#define LpbFirstLevelDcacheFillSize 0x64
#define LpbFirstLevelIcacheSize 0x68
#define LpbFirstLevelIcacheFillSize 0x6c
#define LpbGpBase 0x70
#define LpbPanicStack 0x74
#define LpbPcrPage 0x78
#define LpbPdrPage 0x7c
#define LpbSecondLevelDcacheSize 0x80
#define LpbSecondLevelDcacheFillSize 0x84
#define LpbSecondLevelIcacheSize 0x88
#define LpbSecondLevelIcacheFillSize 0x8c
#define LpbPcrPage2 0x90
#define LpbRegistryLength 0x28
#define LpbRegistryBase 0x2c
// Address Space Layout Definitions
#define KUSEG_BASE 0x0
#define KSEG0_BASE 0x80000000
#define KSEG1_BASE 0xa0000000
#define KSEG2_BASE 0xc0000000
// Page Table and Directory Entry Definitions
#define PAGE_SIZE 0x1000
#define PAGE_SHIFT 0xc
#define PDI_SHIFT 0x16
#define PTI_SHIFT 0xc
// Software Interrupt Request Mask Definitions
#define APC_INTERRUPT 0x100
#define DISPATCH_INTERRUPT 0x200
// Breakpoint Definitions
#define USER_BREAKPOINT 0x0
#define KERNEL_BREAKPOINT 0x1
#define BREAKIN_BREAKPOINT 0x2
// Miscellaneous Definitions
#define Executive 0x0
#define KernelMode 0x0
#define FALSE 0x0
#define TRUE 0x1
#define UNCACHED_POLICY 0x2
#define KiPcr 0xfffff000
#define KiPcr2 0xffffe000