[ros-diffs] [tkreuzer] 37820: add more stuff to x64 asm.h

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Wed Dec 3 17:39:26 CET 2008


Author: tkreuzer
Date: Wed Dec  3 10:39:26 2008
New Revision: 37820

URL: http://svn.reactos.org/svn/reactos?rev=37820&view=rev
Log:
add more stuff to x64 asm.h

Modified:
    branches/ros-amd64-bringup/reactos/include/ndk/amd64/asm.h

Modified: branches/ros-amd64-bringup/reactos/include/ndk/amd64/asm.h
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/include/ndk/amd64/asm.h?rev=37820&r1=37819&r2=37820&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/include/ndk/amd64/asm.h [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/include/ndk/amd64/asm.h [iso-8859-1] Wed Dec  3 10:39:26 2008
@@ -50,6 +50,11 @@
 #define KTHREAD_STACK_LIMIT                     0x30
 #define KTHREAD_WAIT_IRQL                       0x156
 
+//
+// KPRCB Offsets
+//
+#define KPRCB_CurrentThread 0x08
+
 
 //
 // KPCR Offsets
@@ -57,10 +62,63 @@
 #define KPCR_TSS_BASE                           0x08
 #define KPCR_SELF                               0x18
 #define KPCR_STALL_SCALE_FACTOR                 0x64
-
-//
-// Trap Frame Offsets
-//
+#define KPCR_PRCB 0x180
+
+//
+// KTRAP_FRAME Offsets
+//
+#define KTRAP_FRAME_P1Home 0x00
+#define KTRAP_FRAME_P2Home 0x08
+#define KTRAP_FRAME_P3Home 0x10
+#define KTRAP_FRAME_P4Home 0x18
+#define KTRAP_FRAME_P5 0x20
+#define KTRAP_FRAME_PreviousMode 0x28
+#define KTRAP_FRAME_PreviousIrql 0x29
+#define KTRAP_FRAME_FaultIndicator 0x2A
+#define KTRAP_FRAME_ExceptionActive 0x2B
+#define KTRAP_FRAME_MxCsr 0x2C
+#define KTRAP_FRAME_Rax 0x30
+#define KTRAP_FRAME_Rcx 0x38
+#define KTRAP_FRAME_Rdx 0x40
+#define KTRAP_FRAME_R8 0x48
+#define KTRAP_FRAME_R9 0x50
+#define KTRAP_FRAME_R10 0x58
+#define KTRAP_FRAME_R11 0x60
+#define KTRAP_FRAME_Spare0 0x68
+#define KTRAP_FRAME_Xmm0 0x70
+#define KTRAP_FRAME_Xmm1 0x80
+#define KTRAP_FRAME_Xmm2 0x90
+#define KTRAP_FRAME_Xmm3 0xA0
+#define KTRAP_FRAME_Xmm4 0xB0
+#define KTRAP_FRAME_Xmm5 0xC0
+#define KTRAP_FRAME_FaultAddress 0xD0
+#define KTRAP_FRAME_Dr0 0xD8
+#define KTRAP_FRAME_Dr1 0xE0
+#define KTRAP_FRAME_Dr2 0xE8
+#define KTRAP_FRAME_Dr3 0xF0
+#define KTRAP_FRAME_Dr6 0xF8
+#define KTRAP_FRAME_Dr7 0x100
+#define KTRAP_FRAME_DebugControl 0x108
+#define KTRAP_FRAME_LastBranchToRip 0x110
+#define KTRAP_FRAME_LastBranchFromRip 0x118
+#define KTRAP_FRAME_LastExceptionToRip 0x120
+#define KTRAP_FRAME_LastExceptionFromRip 0x128
+#define KTRAP_FRAME_SegDs 0x130
+#define KTRAP_FRAME_SegEs 0x132
+#define KTRAP_FRAME_SegFs 0x134
+#define KTRAP_FRAME_SegGs 0x136
+#define KTRAP_FRAME_TrapFrame 0x138
+#define KTRAP_FRAME_Rbx 0x140
+#define KTRAP_FRAME_Rdi 0x148
+#define KTRAP_FRAME_Rsi 0x150
+#define KTRAP_FRAME_Rbp 0x158
+#define KTRAP_FRAME_ErrorCode 0x160
+#define KTRAP_FRAME_Rip 0x168
+#define KTRAP_FRAME_SegCs 0x170
+#define KTRAP_FRAME_EFlags 0x178
+#define KTRAP_FRAME_Rsp 0x180
+#define KTRAP_FRAME_SegSs 0x188
+#define SIZE_KTRAP_FRAME 0x190
 #define KTRAP_FRAME_ALIGN                       0x10
 #define KTRAP_FRAME_LENGTH                      0x190
 
@@ -132,60 +190,15 @@
 #define CONTEXT_LastExceptionFromRip 0x4c8
 
 //
-// KTRAP_FRAME Offsets
-//
-#define KTRAP_FRAME_P1Home 0x00
-#define KTRAP_FRAME_P2Home 0x08
-#define KTRAP_FRAME_P3Home 0x10
-#define KTRAP_FRAME_P4Home 0x18
-#define KTRAP_FRAME_P5 0x20
-#define KTRAP_FRAME_PreviousMode 0x28
-#define KTRAP_FRAME_PreviousIrql 0x29
-#define KTRAP_FRAME_FaultIndicator 0x2A
-#define KTRAP_FRAME_ExceptionActive 0x2B
-#define KTRAP_FRAME_MxCsr 0x2C
-#define KTRAP_FRAME_Rax 0x30
-#define KTRAP_FRAME_Rcx 0x38
-#define KTRAP_FRAME_Rdx 0x40
-#define KTRAP_FRAME_R8 0x48
-#define KTRAP_FRAME_R9 0x50
-#define KTRAP_FRAME_R10 0x58
-#define KTRAP_FRAME_R11 0x60
-#define KTRAP_FRAME_Spare0 0x68
-#define KTRAP_FRAME_Xmm0 0x70
-#define KTRAP_FRAME_Xmm1 0x80
-#define KTRAP_FRAME_Xmm2 0x90
-#define KTRAP_FRAME_Xmm3 0xA0
-#define KTRAP_FRAME_Xmm4 0xB0
-#define KTRAP_FRAME_Xmm5 0xC0
-#define KTRAP_FRAME_FaultAddress 0xD0
-#define KTRAP_FRAME_Dr0 0xD8
-#define KTRAP_FRAME_Dr1 0xE0
-#define KTRAP_FRAME_Dr2 0xE8
-#define KTRAP_FRAME_Dr3 0xF0
-#define KTRAP_FRAME_Dr6 0xF8
-#define KTRAP_FRAME_Dr7 0x100
-#define KTRAP_FRAME_DebugControl 0x108
-#define KTRAP_FRAME_LastBranchToRip 0x110
-#define KTRAP_FRAME_LastBranchFromRip 0x118
-#define KTRAP_FRAME_LastExceptionToRip 0x120
-#define KTRAP_FRAME_LastExceptionFromRip 0x128
-#define KTRAP_FRAME_SegDs 0x130
-#define KTRAP_FRAME_SegEs 0x132
-#define KTRAP_FRAME_SegFs 0x134
-#define KTRAP_FRAME_SegGs 0x136
-#define KTRAP_FRAME_TrapFrame 0x138
-#define KTRAP_FRAME_Rbx 0x140
-#define KTRAP_FRAME_Rdi 0x148
-#define KTRAP_FRAME_Rsi 0x150
-#define KTRAP_FRAME_Rbp 0x158
-#define KTRAP_FRAME_ErrorCode 0x160
-#define KTRAP_FRAME_Rip 0x168
-#define KTRAP_FRAME_SegCs 0x170
-#define KTRAP_FRAME_EFlags 0x178
-#define KTRAP_FRAME_Rsp 0x180
-#define KTRAP_FRAME_SegSs 0x188
-#define SIZE_KTRAP_FRAME 0x190
+// EXCEPTION_RECORD Offsets
+//
+#define EXCEPTION_RECORD_ExceptionCode 0x00
+#define EXCEPTION_RECORD_ExceptionFlags 0x04
+#define EXCEPTION_RECORD_ExceptionRecord 0x08
+#define EXCEPTION_RECORD_ExceptionAddress 0x10
+#define EXCEPTION_RECORD_NumberParameters 0x18
+#define EXCEPTION_RECORD_ExceptionInformation 0x20
+#define SIZE_EXCEPTION_RECORD 0x98
 
 //
 // CR0
@@ -203,6 +216,20 @@
 #define CR0_PG                                  0x80000000
 
 //
+// CR4
+//
+#define CR4_VME                                 0x1
+#define CR4_PVI                                 0x2
+#define CR4_TSD                                 0x4
+#define CR4_DE                                  0x8
+#define CR4_PSE                                 0x10
+#define CR4_PAE                                 0x20
+#define CR4_MCE                                 0x40
+#define CR4_PGE                                 0x80
+#define CR4_FXSR                                0x200
+#define CR4_XMMEXCPT                            0x400
+
+//
 // Generic Definitions
 //
 #define PRIMARY_VECTOR_BASE                     0x30
@@ -233,6 +260,43 @@
 #define EFLAG_SELECT                            (EFLAG_SIGN + EFLAG_ZERO)
 #define EFLAGS_USER_SANITIZE                    0x3F4DD7
 
+//
+// NTSTATUS and Bugcheck Codes
+//
+#define STATUS_ACCESS_VIOLATION                 0xC0000005
+#define STATUS_IN_PAGE_ERROR                    0xC0000006
+#define STATUS_GUARD_PAGE_VIOLATION             0x80000001
+#define STATUS_PRIVILEGED_INSTRUCTION           0xC0000096
+#define STATUS_STACK_OVERFLOW                   0xC00000FD
+#define KI_EXCEPTION_ACCESS_VIOLATION           0x10000004
+#define STATUS_INVALID_SYSTEM_SERVICE           0xC000001C
+#define STATUS_NO_CALLBACK_ACTIVE               0xC0000258
+#define STATUS_CALLBACK_POP_STACK               0xC0000423
+#define STATUS_ARRAY_BOUNDS_EXCEEDED            0xC000008C
+#define STATUS_ILLEGAL_INSTRUCTION              0xC000001D
+#define STATUS_INVALID_LOCK_SEQUENCE            0xC000001E
+#define STATUS_BREAKPOINT                       0x80000003
+#define STATUS_SINGLE_STEP                      0x80000004
+#define STATUS_INTEGER_DIVIDE_BY_ZERO           0xC0000094
+#define STATUS_INTEGER_OVERFLOW                 0xC0000095
+#define STATUS_FLOAT_DENORMAL_OPERAND           0xC000008D
+#define STATUS_FLOAT_DIVIDE_BY_ZERO             0xC000008E
+#define STATUS_FLOAT_INEXACT_RESULT             0xC000008F
+#define STATUS_FLOAT_INVALID_OPERATION          0xC0000090
+#define STATUS_FLOAT_OVERFLOW                   0xC0000091
+#define STATUS_FLOAT_STACK_CHECK                0xC0000092
+#define STATUS_FLOAT_UNDERFLOW                  0xC0000093
+#define STATUS_FLOAT_MULTIPLE_FAULTS            0xC00002B4
+#define STATUS_FLOAT_MULTIPLE_TRAPS             0xC00002B5
+#define APC_INDEX_MISMATCH                      0x01
+#define IRQL_NOT_GREATER_OR_EQUAL               0x09
+#define IRQL_NOT_LESS_OR_EQUAL                  0x0A
+#define TRAP_CAUSE_UNKNOWN                      0x12
+#define KMODE_EXCEPTION_NOT_HANDLED             0x13
+#define IRQL_GT_ZERO_AT_SYSTEM_SERVICE          0x4A
+#define UNEXPECTED_KERNEL_MODE_TRAP             0x7F
+#define ATTEMPTED_SWITCH_FROM_DPC               0xB8
+#define HARDWARE_INTERRUPT_STORM                0xF2
 
 //
 // IRQL Levels



More information about the Ros-diffs mailing list