Reactos

[NDK] Remove amd64/asm.h

Most definitions were either duplicated or unused. Move the remaining ones to amd64/ketypes.h. Actual asm definitions are autogenerated.

+22 -431
-427
sdk/include/ndk/amd64/asm.h
··· 1 - /*++ NDK Version: 0095 2 - 3 - Copyright (c) Alex Ionescu. All rights reserved. 4 - 5 - Header Name: 6 - 7 - amd64/asm.h 8 - 9 - Abstract: 10 - 11 - ASM Offsets for dealing with de-referencing structures in registers. 12 - 13 - Author: 14 - 15 - Timo Kreuzer (timo.kreuzer@reactos.org) 06-Sep-2008 16 - 17 - --*/ 18 - #ifndef _ASM_AMD64_H 19 - #define _ASM_AMD64_H 20 - 21 - #ifndef HEX 22 - #ifdef _USE_ML 23 - #define HEX(x) x##h 24 - #else 25 - #define HEX(val) 0x0##val 26 - #endif 27 - #endif 28 - 29 - #define SIZEOF_FX_SAVE_AREA 528 // HACK 30 - 31 - // 32 - // CPU Modes 33 - // 34 - #define KernelMode HEX(0) 35 - #define UserMode HEX(1) 36 - 37 - // 38 - // KTSS Offsets 39 - // 40 - #define KTSS64_RSP0 HEX(04) 41 - #define KTSS64_RSP1 HEX(0c) 42 - #define KTSS64_RSP2 HEX(14) 43 - #define KTSS64_IST HEX(1c) 44 - #define KTSS64_IO_MAP_BASE HEX(66) 45 - 46 - // 47 - // KTHREAD Offsets 48 - // 49 - #define KTHREAD_DEBUG_ACTIVE HEX(03) 50 - #define KTHREAD_INITIAL_STACK HEX(28) 51 - #define KTHREAD_STACK_LIMIT HEX(30) 52 - #define KTHREAD_WAIT_IRQL HEX(156) 53 - 54 - // 55 - // KPRCB Offsets 56 - // 57 - #define KPRCB_CurrentThread HEX(08) 58 - 59 - 60 - // 61 - // KPCR Offsets 62 - // 63 - #define KPCR_TSS_BASE HEX(08) 64 - #define KPCR_SELF HEX(18) 65 - #define KPCR_STALL_SCALE_FACTOR HEX(64) 66 - #define KPCR_PRCB HEX(180 67 - 68 - // 69 - // KTRAP_FRAME Offsets 70 - // 71 - #define KTRAP_FRAME_P1Home HEX(00) 72 - #define KTRAP_FRAME_P2Home HEX(08) 73 - #define KTRAP_FRAME_P3Home HEX(10) 74 - #define KTRAP_FRAME_P4Home HEX(18) 75 - #define KTRAP_FRAME_P5 HEX(20) 76 - #define KTRAP_FRAME_PreviousMode HEX(28) 77 - #define KTRAP_FRAME_PreviousIrql HEX(29) 78 - #define KTRAP_FRAME_FaultIndicator HEX(2A) 79 - #define KTRAP_FRAME_ExceptionActive HEX(2B) 80 - #define KTRAP_FRAME_MxCsr HEX(2C) 81 - #define KTRAP_FRAME_Rax HEX(30) 82 - #define KTRAP_FRAME_Rcx HEX(38) 83 - #define KTRAP_FRAME_Rdx HEX(40) 84 - #define KTRAP_FRAME_R8 HEX(48) 85 - #define KTRAP_FRAME_R9 HEX(50) 86 - #define KTRAP_FRAME_R10 HEX(58) 87 - #define KTRAP_FRAME_R11 HEX(60) 88 - #define KTRAP_FRAME_GsBase HEX(68) 89 - #define KTRAP_FRAME_Xmm0 HEX(70) 90 - #define KTRAP_FRAME_Xmm1 HEX(80) 91 - #define KTRAP_FRAME_Xmm2 HEX(90) 92 - #define KTRAP_FRAME_Xmm3 HEX(A0) 93 - #define KTRAP_FRAME_Xmm4 HEX(B0) 94 - #define KTRAP_FRAME_Xmm5 HEX(C0) 95 - #define KTRAP_FRAME_FaultAddress HEX(D0) 96 - #define KTRAP_FRAME_Dr0 HEX(D8) 97 - #define KTRAP_FRAME_Dr1 HEX(E0) 98 - #define KTRAP_FRAME_Dr2 HEX(E8) 99 - #define KTRAP_FRAME_Dr3 HEX(F0) 100 - #define KTRAP_FRAME_Dr6 HEX(F8) 101 - #define KTRAP_FRAME_Dr7 HEX(100) 102 - #define KTRAP_FRAME_DebugControl HEX(108) 103 - #define KTRAP_FRAME_LastBranchToRip HEX(110) 104 - #define KTRAP_FRAME_LastBranchFromRip HEX(118) 105 - #define KTRAP_FRAME_LastExceptionToRip HEX(120) 106 - #define KTRAP_FRAME_LastExceptionFromRip HEX(128) 107 - #define KTRAP_FRAME_SegDs HEX(130) 108 - #define KTRAP_FRAME_SegEs HEX(132) 109 - #define KTRAP_FRAME_SegFs HEX(134) 110 - #define KTRAP_FRAME_SegGs HEX(136) 111 - #define KTRAP_FRAME_TrapFrame HEX(138) 112 - #define KTRAP_FRAME_Rbx HEX(140) 113 - #define KTRAP_FRAME_Rdi HEX(148) 114 - #define KTRAP_FRAME_Rsi HEX(150) 115 - #define KTRAP_FRAME_Rbp HEX(158) 116 - #define KTRAP_FRAME_ErrorCode HEX(160) 117 - #define KTRAP_FRAME_Rip HEX(168) 118 - #define KTRAP_FRAME_SegCs HEX(170) 119 - #define KTRAP_FRAME_Logging HEX(173) 120 - #define KTRAP_FRAME_EFlags HEX(178) 121 - #define KTRAP_FRAME_Rsp HEX(180) 122 - #define KTRAP_FRAME_SegSs HEX(188) 123 - #define KTRAP_FRAME_CodePatchCycle HEX(18c) 124 - #define SIZE_KTRAP_FRAME HEX(190) 125 - #define KTRAP_FRAME_ALIGN HEX(10) 126 - #define KTRAP_FRAME_LENGTH HEX(190) 127 - 128 - // 129 - // CONTEXT Offsets 130 - // 131 - #define CONTEXT_P1Home 0 132 - #define CONTEXT_P2Home HEX(08) 133 - #define CONTEXT_P3Home HEX(10) 134 - #define CONTEXT_P4Home HEX(18) 135 - #define CONTEXT_P5Home HEX(20) 136 - #define CONTEXT_P6Home HEX(28) 137 - #define CONTEXT_ContextFlags HEX(30) 138 - #define CONTEXT_MxCsr HEX(34) 139 - #define CONTEXT_SegCs HEX(38) 140 - #define CONTEXT_SegDs HEX(3a) 141 - #define CONTEXT_SegEs HEX(3c) 142 - #define CONTEXT_SegFs HEX(3e) 143 - #define CONTEXT_SegGs HEX(40) 144 - #define CONTEXT_SegSs HEX(42) 145 - #define CONTEXT_EFlags HEX(44) 146 - #define CONTEXT_Dr0 HEX(48) 147 - #define CONTEXT_Dr1 HEX(50) 148 - #define CONTEXT_Dr2 HEX(58) 149 - #define CONTEXT_Dr3 HEX(60) 150 - #define CONTEXT_Dr6 HEX(68) 151 - #define CONTEXT_Dr7 HEX(70) 152 - #define CONTEXT_Rax HEX(78) 153 - #define CONTEXT_Rcx HEX(80) 154 - #define CONTEXT_Rdx HEX(88) 155 - #define CONTEXT_Rbx HEX(90) 156 - #define CONTEXT_Rsp HEX(98) 157 - #define CONTEXT_Rbp HEX(a0) 158 - #define CONTEXT_Rsi HEX(a8) 159 - #define CONTEXT_Rdi HEX(b0) 160 - #define CONTEXT_R8 HEX(b8) 161 - #define CONTEXT_R9 HEX(c0) 162 - #define CONTEXT_R10 HEX(c8) 163 - #define CONTEXT_R11 HEX(d0) 164 - #define CONTEXT_R12 HEX(d8) 165 - #define CONTEXT_R13 HEX(e0) 166 - #define CONTEXT_R14 HEX(e8) 167 - #define CONTEXT_R15 HEX(f0) 168 - #define CONTEXT_Rip HEX(f8) 169 - #define CONTEXT_Header HEX(100) 170 - #define CONTEXT_Legacy HEX(120) 171 - #define CONTEXT_Xmm0 HEX(1a0) 172 - #define CONTEXT_Xmm1 HEX(1b0) 173 - #define CONTEXT_Xmm2 HEX(1c0) 174 - #define CONTEXT_Xmm3 HEX(1d0) 175 - #define CONTEXT_Xmm4 HEX(1e0) 176 - #define CONTEXT_Xmm5 HEX(1f0) 177 - #define CONTEXT_Xmm6 HEX(200) 178 - #define CONTEXT_Xmm7 HEX(210) 179 - #define CONTEXT_Xmm8 HEX(220) 180 - #define CONTEXT_Xmm9 HEX(230) 181 - #define CONTEXT_Xmm10 HEX(240) 182 - #define CONTEXT_Xmm11 HEX(250) 183 - #define CONTEXT_Xmm12 HEX(260) 184 - #define CONTEXT_Xmm13 HEX(270) 185 - #define CONTEXT_Xmm14 HEX(280) 186 - #define CONTEXT_Xmm15 HEX(290) 187 - #define CONTEXT_VectorRegister HEX(300) 188 - #define CONTEXT_VectorControl HEX(4a0) 189 - #define CONTEXT_DebugControl HEX(4a8) 190 - #define CONTEXT_LastBranchToRip HEX(4b0) 191 - #define CONTEXT_LastBranchFromRip HEX(4b8) 192 - #define CONTEXT_LastExceptionToRip HEX(4c0) 193 - #define CONTEXT_LastExceptionFromRip HEX(4c8) 194 - 195 - // 196 - // KEXCEPTION_FRAME offsets 197 - // 198 - #define KEXCEPTION_FRAME_P1Home HEX(000) 199 - #define KEXCEPTION_FRAME_P2Home HEX(008) 200 - #define KEXCEPTION_FRAME_P3Home HEX(010) 201 - #define KEXCEPTION_FRAME_P4Home HEX(018) 202 - #define KEXCEPTION_FRAME_P5 HEX(020) 203 - #define KEXCEPTION_FRAME_InitialStack HEX(028) 204 - #define KEXCEPTION_FRAME_Xmm6 HEX(030) 205 - #define KEXCEPTION_FRAME_Xmm7 HEX(040) 206 - #define KEXCEPTION_FRAME_Xmm8 HEX(050) 207 - #define KEXCEPTION_FRAME_Xmm9 HEX(060) 208 - #define KEXCEPTION_FRAME_Xmm10 HEX(070) 209 - #define KEXCEPTION_FRAME_Xmm11 HEX(080) 210 - #define KEXCEPTION_FRAME_Xmm12 HEX(090) 211 - #define KEXCEPTION_FRAME_Xmm13 HEX(0A0) 212 - #define KEXCEPTION_FRAME_Xmm14 HEX(0B0) 213 - #define KEXCEPTION_FRAME_Xmm15 HEX(0C0) 214 - #define KEXCEPTION_FRAME_TrapFrame HEX(0D0) 215 - #define KEXCEPTION_FRAME_CallbackStack HEX(0D8) 216 - #define KEXCEPTION_FRAME_OutputBuffer HEX(0E0) 217 - #define KEXCEPTION_FRAME_OutputLength HEX(0E8) 218 - #define KEXCEPTION_FRAME_MxCsr HEX(0F0) 219 - #define KEXCEPTION_FRAME_Rbp HEX(0F8) 220 - #define KEXCEPTION_FRAME_Rbx HEX(100) 221 - #define KEXCEPTION_FRAME_Rdi HEX(108) 222 - #define KEXCEPTION_FRAME_Rsi HEX(110) 223 - #define KEXCEPTION_FRAME_R12 HEX(118) 224 - #define KEXCEPTION_FRAME_R13 HEX(120) 225 - #define KEXCEPTION_FRAME_R14 HEX(128) 226 - #define KEXCEPTION_FRAME_R15 HEX(130) 227 - #define KEXCEPTION_FRAME_Return HEX(138) 228 - #define SIZE_KEXCEPTION_FRAME HEX(140) 229 - 230 - 231 - // 232 - // EXCEPTION_RECORD Offsets 233 - // 234 - #define EXCEPTION_RECORD_ExceptionCode HEX(00) 235 - #define EXCEPTION_RECORD_ExceptionFlags HEX(04) 236 - #define EXCEPTION_RECORD_ExceptionRecord HEX(08) 237 - #define EXCEPTION_RECORD_ExceptionAddress HEX(10) 238 - #define EXCEPTION_RECORD_NumberParameters HEX(18) 239 - #define EXCEPTION_RECORD_ExceptionInformation HEX(20) 240 - #define SIZE_EXCEPTION_RECORD HEX(98) 241 - 242 - // 243 - // CR0 244 - // 245 - #define CR0_PE HEX(1) 246 - #define CR0_MP HEX(2) 247 - #define CR0_EM HEX(4) 248 - #define CR0_TS HEX(8) 249 - #define CR0_ET HEX(10) 250 - #define CR0_NE HEX(20) 251 - #define CR0_WP HEX(10000) 252 - #define CR0_AM HEX(40000) 253 - #define CR0_NW HEX(20000000) 254 - #define CR0_CD HEX(40000000) 255 - #define CR0_PG HEX(80000000) 256 - 257 - /* Number of bytes reserved for syscall parameters */ 258 - #define MAX_SYSCALL_PARAM_SIZE (16 * 8) 259 - 260 - #ifdef _ASM_ 261 - // 262 - // CR4 263 - // 264 - #define CR4_VME HEX(1) 265 - #define CR4_PVI HEX(2) 266 - #define CR4_TSD HEX(4) 267 - #define CR4_DE HEX(8) 268 - #define CR4_PSE HEX(10) 269 - #define CR4_PAE HEX(20) 270 - #define CR4_MCE HEX(40) 271 - #define CR4_PGE HEX(80) 272 - #define CR4_FXSR HEX(200) 273 - #define CR4_XMMEXCPT HEX(400) 274 - #endif 275 - 276 - // 277 - // Generic Definitions 278 - // 279 - #define PRIMARY_VECTOR_BASE HEX(30) 280 - #define MAXIMUM_IDTVECTOR HEX(FF) 281 - 282 - // 283 - // Usermode callout frame definitions 284 - // 285 - #define CBSTACK_STACK HEX(0) 286 - #define CBSTACK_TRAP_FRAME HEX(8) 287 - #define CBSTACK_CALLBACK_STACK HEX(10) 288 - #define CBSTACK_RBP HEX(18) 289 - #define CBSTACK_RESULT HEX(20) 290 - #define CBSTACK_RESULT_LENGTH HEX(28) 291 - 292 - 293 - /* Following ones are ASM only! ***********************************************/ 294 - 295 - #ifdef __ASM__ 296 - 297 - // 298 - // PCR Access 299 - // 300 - #define PCR gs: 301 - 302 - // 303 - // EFLAGS 304 - // 305 - #define EFLAGS_TF HEX(100) 306 - #define EFLAGS_INTERRUPT_MASK HEX(200) 307 - #define EFLAGS_NESTED_TASK HEX(4000) 308 - #define EFLAGS_V86_MASK HEX(20000) 309 - #define EFLAGS_ALIGN_CHECK HEX(40000) 310 - #define EFLAGS_VIF HEX(80000) 311 - #define EFLAGS_VIP HEX(100000) 312 - #define EFLAG_SIGN HEX(8000) 313 - #define EFLAG_ZERO HEX(4000) 314 - #define EFLAG_SELECT (EFLAG_SIGN + EFLAG_ZERO) 315 - #define EFLAGS_USER_SANITIZE HEX(3F4DD7) 316 - 317 - // 318 - // Exception codes 319 - // 320 - #define EXCEPTION_DIVIDED_BY_ZERO HEX(00000) 321 - #define EXCEPTION_DEBUG HEX(00001) 322 - #define EXCEPTION_NMI HEX(00002) 323 - #define EXCEPTION_INT3 HEX(00003) 324 - #define EXCEPTION_BOUND_CHECK HEX(00005) 325 - #define EXCEPTION_INVALID_OPCODE HEX(00006) 326 - #define EXCEPTION_NPX_NOT_AVAILABLE HEX(00007) 327 - #define EXCEPTION_DOUBLE_FAULT HEX(00008) 328 - #define EXCEPTION_NPX_OVERRUN HEX(00009) 329 - #define EXCEPTION_INVALID_TSS HEX(0000A) 330 - #define EXCEPTION_SEGMENT_NOT_PRESENT HEX(0000B) 331 - #define EXCEPTION_STACK_FAULT HEX(0000C) 332 - #define EXCEPTION_GP_FAULT HEX(0000D) 333 - #define EXCEPTION_RESERVED_TRAP HEX(0000F) 334 - #define EXCEPTION_NPX_ERROR HEX(00010) 335 - #define EXCEPTION_ALIGNMENT_CHECK HEX(00011) 336 - 337 - // 338 - // NTSTATUS values 339 - // 340 - #define STATUS_ACCESS_VIOLATION HEX(C0000005) 341 - #define STATUS_IN_PAGE_ERROR HEX(C0000006) 342 - #define STATUS_GUARD_PAGE_VIOLATION HEX(80000001) 343 - #define STATUS_PRIVILEGED_INSTRUCTION HEX(C0000096) 344 - #define STATUS_STACK_OVERFLOW HEX(C00000FD) 345 - #define KI_EXCEPTION_ACCESS_VIOLATION HEX(10000004) 346 - #define STATUS_INVALID_SYSTEM_SERVICE HEX(C000001C) 347 - #define STATUS_NO_CALLBACK_ACTIVE HEX(C0000258) 348 - #define STATUS_CALLBACK_POP_STACK HEX(C0000423) 349 - #define STATUS_ARRAY_BOUNDS_EXCEEDED HEX(C000008C) 350 - #define STATUS_ILLEGAL_INSTRUCTION HEX(C000001D) 351 - #define STATUS_INVALID_LOCK_SEQUENCE HEX(C000001E) 352 - #define STATUS_BREAKPOINT HEX(80000003) 353 - #define STATUS_SINGLE_STEP HEX(80000004) 354 - #define STATUS_INTEGER_DIVIDE_BY_ZERO HEX(C0000094) 355 - #define STATUS_INTEGER_OVERFLOW HEX(C0000095) 356 - #define STATUS_FLOAT_DENORMAL_OPERAND HEX(C000008D) 357 - #define STATUS_FLOAT_DIVIDE_BY_ZERO HEX(C000008E) 358 - #define STATUS_FLOAT_INEXACT_RESULT HEX(C000008F) 359 - #define STATUS_FLOAT_INVALID_OPERATION HEX(C0000090) 360 - #define STATUS_FLOAT_OVERFLOW HEX(C0000091) 361 - #define STATUS_FLOAT_STACK_CHECK HEX(C0000092) 362 - #define STATUS_FLOAT_UNDERFLOW HEX(C0000093) 363 - #define STATUS_FLOAT_MULTIPLE_FAULTS HEX(C00002B4) 364 - #define STATUS_FLOAT_MULTIPLE_TRAPS HEX(C00002B5) 365 - #define STATUS_ASSERTION_FAILURE HEX(C0000420) 366 - 367 - // 368 - // Bugcheck Codes 369 - // 370 - #define APC_INDEX_MISMATCH HEX(01) 371 - #define IRQL_NOT_GREATER_OR_EQUAL HEX(09) 372 - #define IRQL_NOT_LESS_OR_EQUAL HEX(0A) 373 - #define TRAP_CAUSE_UNKNOWN HEX(12) 374 - #define KMODE_EXCEPTION_NOT_HANDLED HEX(13) 375 - #define IRQL_GT_ZERO_AT_SYSTEM_SERVICE HEX(4A) 376 - #define UNEXPECTED_KERNEL_MODE_TRAP HEX(7F) 377 - #define ATTEMPTED_SWITCH_FROM_DPC HEX(B8) 378 - #define HARDWARE_INTERRUPT_STORM HEX(F2) 379 - 380 - // 381 - // IRQL Levels 382 - // 383 - #define PASSIVE_LEVEL 0 384 - #define LOW_LEVEL 0 385 - #define APC_LEVEL 1 386 - #define DISPATCH_LEVEL 2 387 - #define CLOCK_LEVEL 13 388 - #define IPI_LEVEL 14 389 - #define POWER_LEVEL 14 390 - #define PROFILE_LEVEL 15 391 - #define HIGH_LEVEL 15 392 - 393 - // 394 - // Synchronization-level IRQL 395 - // 396 - #ifndef CONFIG_SMP 397 - #define SYNCH_LEVEL DISPATCH_LEVEL 398 - #else 399 - #define SYNCH_LEVEL (IPI_LEVEL - 2) 400 - #endif 401 - 402 - // 403 - // Quantum Decrements 404 - // 405 - #define CLOCK_QUANTUM_DECREMENT HEX(3) 406 - 407 - // 408 - // Machine types 409 - // 410 - #define MACHINE_TYPE_ISA HEX(0000) 411 - #define MACHINE_TYPE_EISA HEX(0001) 412 - #define MACHINE_TYPE_MCA HEX(0002) 413 - 414 - // 415 - // Kernel Feature Bits 416 - // 417 - #define KF_RDTSC HEX(00000002) 418 - 419 - // 420 - // Kernel Stack Size 421 - // 422 - #define KERNEL_STACK_SIZE HEX(6000) 423 - 424 - #endif // __ASM__ 425 - 426 - #endif // !_ASM_AMD64_H 427 -
+20
sdk/include/ndk/amd64/ketypes.h
··· 129 129 #define KGDT64_R0_LDT 0x0060 130 130 131 131 // 132 + // CR0 133 + // 134 + #define CR0_PE 0x00000001 135 + #define CR0_MP 0x00000002 136 + #define CR0_EM 0x00000004 137 + #define CR0_TS 0x00000008 138 + #define CR0_ET 0x00000010 139 + #define CR0_NE 0x00000020 140 + #define CR0_WP 0x00010000 141 + #define CR0_AM 0x00040000 142 + #define CR0_NW 0x20000000 143 + #define CR0_CD 0x40000000 144 + #define CR0_PG 0x80000000 145 + 146 + // 132 147 // CR4 133 148 // 134 149 #define CR4_VME 0x1 ··· 322 337 // 323 338 // HAL Variables 324 339 // 340 + #define PRIMARY_VECTOR_BASE 0x30 341 + #define MAXIMUM_IDTVECTOR 0xFF 325 342 #define INITIAL_STALL_COUNT 100 326 343 #define MM_HAL_VA_START 0xFFFFFFFFFFC00000ULL /* This is Vista+ */ 327 344 #define MM_HAL_VA_END 0xFFFFFFFFFFFFFFFFULL ··· 344 361 345 362 #define NMI_STACK_SIZE 0x2000 346 363 #define ISR_STACK_SIZE 0x6000 364 + 365 + /* Number of bytes reserved for syscall parameters */ 366 + #define MAX_SYSCALL_PARAM_SIZE (16 * 8) 347 367 348 368 // 349 369 // Synchronization-level IRQL
+2 -4
sdk/include/ndk/asm.h
··· 18 18 19 19 #if defined(_M_IX86) 20 20 #include <i386/asm.h> 21 - #elif defined(_M_AMD64) 22 - #include <amd64/asm.h> 23 - #elif defined(_M_ARM) || defined(_M_PPC) || defined(_M_ARM64) 21 + #elif defined(_M_AMD64) || defined(_M_ARM) || defined(_M_PPC) || defined(_M_ARM64) 24 22 // 25 - // ARM and PPC ports don't use asm.h 23 + // AMD64, ARM and PPC ports don't use asm.h 26 24 // 27 25 #else 28 26 #error Unsupported Architecture