00001
#include "kxppc.h"
00002
00003
00004
00005
00006
00007 #define WrExecutive 0x0
00008
00009
00010
00011
00012
00013 #define APC_INDEX_MISMATCH 0x1
00014 #define DATA_BUS_ERROR 0x2e
00015 #define DATA_COHERENCY_EXCEPTION 0x55
00016 #define HAL1_INITIALIZATION_FAILED 0x61
00017 #define INSTRUCTION_BUS_ERROR 0x2f
00018 #define INSTRUCTION_COHERENCY_EXCEPTION 0x56
00019 #define INTERRUPT_EXCEPTION_NOT_HANDLED 0x3d
00020 #define INTERRUPT_UNWIND_ATTEMPTED 0x3c
00021 #define INVALID_AFFINITY_SET 0x3
00022 #define INVALID_DATA_ACCESS_TRAP 0x4
00023 #define IRQL_GT_ZERO_AT_SYSTEM_SERVICE 0x4a
00024 #define IRQL_NOT_LESS_OR_EQUAL 0xa
00025 #define KMODE_EXCEPTION_NOT_HANDLED 0x1e
00026 #define NMI_HARDWARE_FAILURE 0x80
00027 #define NO_USER_MODE_CONTEXT 0xe
00028 #define PAGE_FAULT_WITH_INTERRUPTS_OFF 0x49
00029 #define PANIC_STACK_SWITCH 0x2b
00030 #define SPIN_LOCK_INIT_FAILURE 0x81
00031 #define SYSTEM_EXIT_OWNED_MUTEX 0x39
00032 #define SYSTEM_SERVICE_EXCEPTION 0x3b
00033 #define SYSTEM_UNWIND_PREVIOUS_USER 0x3a
00034 #define TRAP_CAUSE_UNKNOWN 0x12
00035 #define UNEXPECTED_KERNEL_MODE_TRAP 0x7f
00036
00037
00038
00039
00040
00041 #define DBG_STATUS_CONTROL_C 0x1
00042
00043
00044
00045
00046
00047 #define EXCEPTION_NONCONTINUABLE 0x1
00048 #define EXCEPTION_UNWINDING 0x2
00049 #define EXCEPTION_EXIT_UNWIND 0x4
00050 #define EXCEPTION_STACK_INVALID 0x8
00051 #define EXCEPTION_NESTED_CALL 0x10
00052 #define EXCEPTION_TARGET_UNWIND 0x20
00053 #define EXCEPTION_COLLIDED_UNWIND 0x40
00054 #define EXCEPTION_UNWIND 0x66
00055 #define EXCEPTION_EXECUTE_HANDLER 0x1
00056 #define EXCEPTION_CONTINUE_SEARCH 0x0
00057 #define EXCEPTION_CONTINUE_EXECUTION 0xffffffff
00058
00059 #define ExceptionContinueExecution 0x0
00060 #define ExceptionContinueSearch 0x1
00061 #define ExceptionNestedException 0x2
00062 #define ExceptionCollidedUnwind 0x3
00063
00064 #define ErExceptionCode 0x0
00065 #define ErExceptionFlags 0x4
00066 #define ErExceptionRecord 0x8
00067 #define ErExceptionAddress 0xc
00068 #define ErNumberParameters 0x10
00069 #define ErExceptionInformation 0x14
00070 #define ExceptionRecordLength 0x50
00071
00072
00073
00074
00075
00076 #define FmCount 0x0
00077 #define FmOwner 0x4
00078 #define FmContention 0x8
00079 #define FmEvent 0xc
00080 #define FmOldIrql 0x1c
00081
00082
00083
00084
00085
00086 #define APC_LEVEL 0x1
00087 #define DISPATCH_LEVEL 0x2
00088 #define IPI_LEVEL 0x1d
00089 #define POWER_LEVEL 0x1e
00090 #define PROFILE_LEVEL 0x1b
00091 #define HIGH_LEVEL 0x1f
00092 #define SYNCH_LEVEL 0x2
00093
00094
00095
00096
00097
00098 #define LiLowPart 0x0
00099 #define LiHighPart 0x4
00100
00101
00102
00103
00104
00105 #define LsFlink 0x0
00106 #define LsBlink 0x4
00107
00108
00109
00110
00111
00112 #define StrLength 0x0
00113 #define StrMaximumLength 0x2
00114 #define StrBuffer 0x4
00115
00116
00117
00118
00119
00120 #define StLowTime 0x0
00121 #define StHigh1Time 0x4
00122 #define StHigh2Time 0x8
00123
00124
00125
00126
00127
00128 #define TmLowTime 0x0
00129 #define TmHighTime 0x4
00130
00131
00132
00133
00134
00135 #define DpType 0x0
00136 #define DpNumber 0x2
00137 #define DpImportance 0x3
00138 #define DpDpcListEntry 0x4
00139 #define DpDeferredRoutine 0xc
00140 #define DpDeferredContext 0x10
00141 #define DpSystemArgument1 0x14
00142 #define DpSystemArgument2 0x18
00143 #define DpLock 0x1c
00144 #define DpcObjectLength 0x20
00145
00146
00147
00148
00149
00150 #define InLevelSensitive 0x0
00151 #define InLatched 0x1
00152
00153 #define InType 0x0
00154 #define InSize 0x2
00155 #define InInterruptListEntry 0x4
00156 #define InServiceRoutine 0xc
00157 #define InServiceContext 0x10
00158 #define InSpinLock 0x14
00159 #define InActualLock 0x1c
00160 #define InDispatchAddress 0x20
00161 #define InVector 0x24
00162 #define InIrql 0x28
00163 #define InSynchronizeIrql 0x29
00164 #define InFloatingSave 0x2a
00165 #define InConnected 0x2b
00166 #define InNumber 0x2c
00167 #define InMode 0x30
00168 #define InShareVector 0x2d
00169 #define InDispatchCode 0x3c
00170 #define InterruptObjectLength 0x4c
00171
00172
00173
00174
00175
00176 #define PCR_MINOR_VERSION 0x1
00177 #define PCR_MAJOR_VERSION 0x1
00178
00179 #define PcMinorVersion 0x0
00180 #define PcMajorVersion 0x2
00181 #define PcInterruptRoutine 0x4
00182 #define PcPcrPage2 0x404
00183 #define PcKseg0Top 0x408
00184 #define PcFirstLevelDcacheSize 0x484
00185 #define PcFirstLevelDcacheFillSize 0x488
00186 #define PcFirstLevelIcacheSize 0x48c
00187 #define PcFirstLevelIcacheFillSize 0x490
00188 #define PcSecondLevelDcacheSize 0x494
00189 #define PcSecondLevelDcacheFillSize 0x498
00190 #define PcSecondLevelIcacheSize 0x49c
00191 #define PcSecondLevelIcacheFillSize 0x4a0
00192 #define PcPrcb 0x4a4
00193 #define PcTeb 0x4a8
00194 #define PcDcacheAlignment 0x4ac
00195 #define PcDcacheFillSize 0x4b0
00196 #define PcIcacheAlignment 0x4b4
00197 #define PcIcacheFillSize 0x4b8
00198 #define PcProcessorVersion 0x4bc
00199 #define PcProcessorRevision 0x4c0
00200 #define PcProfileInterval 0x4c4
00201 #define PcProfileCount 0x4c8
00202 #define PcStallExecutionCount 0x4cc
00203 #define PcStallScaleFactor 0x4d0
00204 #define PcCachePolicy 0x4d8
00205 #define PcIcacheMode 0x4d8
00206 #define PcDcacheMode 0x4d9
00207 #define PcIrqlMask 0x4dc
00208 #define PcIrqlTable 0x4fc
00209 #define PcCurrentIrql 0x505
00210 #define PcNumber 0x506
00211 #define PcSetMember 0x508
00212 #define PcCurrentThread 0x510
00213 #define PcAlignedCachePolicy 0x514
00214 #define PcSoftwareInterrupt 0x518
00215 #define PcApcInterrupt 0x518
00216 #define PcDispatchInterrupt 0x519
00217 #define PcNotMember 0x51c
00218 #define PcSystemReserved 0x520
00219 #define PcHalReserved 0x560
00220
00221
00222
00223
00224
00225 #define PRCB_MINOR_VERSION 0x1
00226 #define PRCB_MAJOR_VERSION 0x1
00227
00228 #define PbMinorVersion 0x0
00229 #define PbMajorVersion 0x2
00230 #define PbCurrentThread 0x4
00231 #define PbNextThread 0x8
00232 #define PbIdleThread 0xc
00233 #define PbNumber 0x10
00234 #define PbSetMember 0x14
00235 #define PbRestartBlock 0x18
00236 #define PbPcrPage 0x1c
00237 #define PbSystemReserved 0x24
00238 #define PbHalReserved 0x60
00239
00240
00241
00242
00243
00244 #define CONTEXT_FULL 0x7
00245 #define CONTEXT_CONTROL 0x1
00246 #define CONTEXT_FLOATING_POINT 0x2
00247 #define CONTEXT_INTEGER 0x4
00248
00249 #define CxFpr0 0x0
00250 #define CxFpr1 0x8
00251 #define CxFpr2 0x10
00252 #define CxFpr3 0x18
00253 #define CxFpr4 0x20
00254 #define CxFpr5 0x28
00255 #define CxFpr6 0x30
00256 #define CxFpr7 0x38
00257 #define CxFpr8 0x40
00258 #define CxFpr9 0x48
00259 #define CxFpr10 0x50
00260 #define CxFpr11 0x58
00261 #define CxFpr12 0x60
00262 #define CxFpr13 0x68
00263 #define CxFpr14 0x70
00264 #define CxFpr15 0x78
00265 #define CxFpr16 0x80
00266 #define CxFpr17 0x88
00267 #define CxFpr18 0x90
00268 #define CxFpr19 0x98
00269 #define CxFpr20 0xa0
00270 #define CxFpr21 0xa8
00271 #define CxFpr22 0xb0
00272 #define CxFpr23 0xb8
00273 #define CxFpr24 0xc0
00274 #define CxFpr25 0xc8
00275 #define CxFpr26 0xd0
00276 #define CxFpr27 0xd8
00277 #define CxFpr28 0xe0
00278 #define CxFpr29 0xe8
00279 #define CxFpr30 0xf0
00280 #define CxFpr31 0xf8
00281 #define CxFpscr 0x100
00282 #define CxGpr0 0x108
00283 #define CxGpr1 0x10c
00284 #define CxGpr2 0x110
00285 #define CxGpr3 0x114
00286 #define CxGpr4 0x118
00287 #define CxGpr5 0x11c
00288 #define CxGpr6 0x120
00289 #define CxGpr7 0x124
00290 #define CxGpr8 0x128
00291 #define CxGpr9 0x12c
00292 #define CxGpr10 0x130
00293 #define CxGpr11 0x134
00294 #define CxGpr12 0x138
00295 #define CxGpr13 0x13c
00296 #define CxGpr14 0x140
00297 #define CxGpr15 0x144
00298 #define CxGpr16 0x148
00299 #define CxGpr17 0x14c
00300 #define CxGpr18 0x150
00301 #define CxGpr19 0x154
00302 #define CxGpr20 0x158
00303 #define CxGpr21 0x15c
00304 #define CxGpr22 0x160
00305 #define CxGpr23 0x164
00306 #define CxGpr24 0x168
00307 #define CxGpr25 0x16c
00308 #define CxGpr26 0x170
00309 #define CxGpr27 0x174
00310 #define CxGpr28 0x178
00311 #define CxGpr29 0x17c
00312 #define CxGpr30 0x180
00313 #define CxGpr31 0x184
00314 #define CxCr 0x188
00315 #define CxXer 0x18c
00316 #define CxMsr 0x190
00317 #define CxIar 0x194
00318 #define CxLr 0x198
00319 #define CxCtr 0x19c
00320 #define CxContextFlags 0x1a0
00321 #define CxDr0 0x1b0
00322 #define CxDr1 0x1b4
00323 #define CxDr2 0x1b8
00324 #define CxDr3 0x1bc
00325 #define CxDr4 0x1c0
00326 #define CxDr5 0x1c4
00327 #define CxDr6 0x1c8
00328 #define CxDr7 0x1cc
00329 #define ContextFrameLength 0x1d0
00330
00331
00332
00333
00334
00335 #define CrBackChain 0x0
00336 #define CrGlueSaved1 0x4
00337 #define CrGlueSaved2 0x8
00338 #define CrReserved1 0xc
00339 #define CrSpare1 0x10
00340 #define CrSpare2 0x14
00341 #define CrParameter0 0x18
00342 #define CrParameter1 0x1c
00343 #define CrParameter2 0x20
00344 #define CrParameter3 0x24
00345 #define CrParameter4 0x28
00346 #define CrParameter5 0x2c
00347 #define CrParameter6 0x30
00348 #define CrParameter7 0x34
00349 #define StackFrameHeaderLength 0x38
00350
00351
00352
00353
00354
00355 #define ExGpr13 0x4
00356 #define ExGpr14 0x8
00357 #define ExGpr15 0xc
00358 #define ExGpr16 0x10
00359 #define ExGpr17 0x14
00360 #define ExGpr18 0x18
00361 #define ExGpr19 0x1c
00362 #define ExGpr20 0x20
00363 #define ExGpr21 0x24
00364 #define ExGpr22 0x28
00365 #define ExGpr23 0x2c
00366 #define ExGpr24 0x30
00367 #define ExGpr25 0x34
00368 #define ExGpr26 0x38
00369 #define ExGpr27 0x3c
00370 #define ExGpr28 0x40
00371 #define ExGpr29 0x44
00372 #define ExGpr30 0x48
00373 #define ExGpr31 0x4c
00374 #define ExFpr14 0x50
00375 #define ExFpr15 0x58
00376 #define ExFpr16 0x60
00377 #define ExFpr17 0x68
00378 #define ExFpr18 0x70
00379 #define ExFpr19 0x78
00380 #define ExFpr20 0x80
00381 #define ExFpr21 0x88
00382 #define ExFpr22 0x90
00383 #define ExFpr23 0x98
00384 #define ExFpr24 0xa0
00385 #define ExFpr25 0xa8
00386 #define ExFpr26 0xb0
00387 #define ExFpr27 0xb8
00388 #define ExFpr28 0xc0
00389 #define ExFpr29 0xc8
00390 #define ExFpr30 0xd0
00391 #define ExFpr31 0xd8
00392 #define ExceptionFrameLength 0xe0
00393
00394
00395
00396
00397
00398 #define TrTrapFrame 0x0
00399 #define TrOldIrql 0x4
00400 #define TrPreviousMode 0x5
00401 #define TrSavedApcStateIndex 0x6
00402 #define TrSavedKernelApcDisable 0x7
00403 #define TrExceptionRecord 0x8
00404 #define TrGpr0 0x5c
00405 #define TrGpr1 0x60
00406 #define TrGpr2 0x64
00407 #define TrGpr3 0x68
00408 #define TrGpr4 0x6c
00409 #define TrGpr5 0x70
00410 #define TrGpr6 0x74
00411 #define TrGpr7 0x78
00412 #define TrGpr8 0x7c
00413 #define TrGpr9 0x80
00414 #define TrGpr10 0x84
00415 #define TrGpr11 0x88
00416 #define TrGpr12 0x8c
00417 #define TrFpr0 0x90
00418 #define TrFpr1 0x98
00419 #define TrFpr2 0xa0
00420 #define TrFpr3 0xa8
00421 #define TrFpr4 0xb0
00422 #define TrFpr5 0xb8
00423 #define TrFpr6 0xc0
00424 #define TrFpr7 0xc8
00425 #define TrFpr8 0xd0
00426 #define TrFpr9 0xd8
00427 #define TrFpr10 0xe0
00428 #define TrFpr11 0xe8
00429 #define TrFpr12 0xf0
00430 #define TrFpr13 0xf8
00431 #define TrFpscr 0x100
00432 #define TrCr 0x108
00433 #define TrXer 0x10c
00434 #define TrMsr 0x110
00435 #define TrIar 0x114
00436 #define TrLr 0x118
00437 #define TrCtr 0x11c
00438 #define TrDr0 0x120
00439 #define TrDr1 0x124
00440 #define TrDr2 0x128
00441 #define TrDr3 0x12c
00442 #define TrDr4 0x130
00443 #define TrDr5 0x134
00444 #define TrDr6 0x138
00445 #define TrDr7 0x13c
00446 #define TrapFrameLength 0x140
00447
00448
00449
00450
00451
00452 #define PsContextFrame 0x0
00453 #define PsSpecialRegisters 0x1d0
00454 #define SrKernelDr0 0x0
00455 #define SrKernelDr1 0x4
00456 #define SrKernelDr2 0x8
00457 #define SrKernelDr3 0xc
00458 #define SrKernelDr4 0x10
00459 #define SrKernelDr5 0x14
00460 #define SrKernelDr6 0x18
00461 #define SrKernelDr7 0x1c
00462 #define SrSprg0 0x20
00463 #define SrSprg1 0x24
00464 #define SrSr0 0x28
00465 #define SrSr1 0x2c
00466 #define SrSr2 0x30
00467 #define SrSr3 0x34
00468 #define SrSr4 0x38
00469 #define SrSr5 0x3c
00470 #define SrSr6 0x40
00471 #define SrSr7 0x44
00472 #define SrSr8 0x48
00473 #define SrSr9 0x4c
00474 #define SrSr10 0x50
00475 #define SrSr11 0x54
00476 #define SrSr12 0x58
00477 #define SrSr13 0x5c
00478 #define SrSr14 0x60
00479 #define SrSr15 0x64
00480 #define SrDBAT0L 0x68
00481 #define SrDBAT0U 0x6c
00482 #define SrDBAT1L 0x70
00483 #define SrDBAT1U 0x74
00484 #define SrDBAT2L 0x78
00485 #define SrDBAT2U 0x7c
00486 #define SrDBAT3L 0x80
00487 #define SrDBAT3U 0x84
00488 #define SrIBAT0L 0x88
00489 #define SrIBAT0U 0x8c
00490 #define SrIBAT1L 0x90
00491 #define SrIBAT1U 0x94
00492 #define SrIBAT2L 0x98
00493 #define SrIBAT2U 0x9c
00494 #define SrIBAT3L 0xa0
00495 #define SrIBAT3U 0xa4
00496 #define SrSdr1 0xa8
00497 #define ProcessorStateLength 0x2a0
00498
00499
00500
00501
00502
00503 #define LpbLoadOrderListHead 0x0
00504 #define LpbMemoryDescriptorListHead 0x8
00505 #define LpbKernelStack 0x18
00506 #define LpbPrcb 0x1c
00507 #define LpbProcess 0x20
00508 #define LpbThread 0x24
00509 #define LpbRegistryLength 0x28
00510 #define LpbRegistryBase 0x2c
00511 #define LpbInterruptStack 0x5c
00512 #define LpbFirstLevelDcacheSize 0x60
00513 #define LpbFirstLevelDcacheFillSize 0x64
00514 #define LpbFirstLevelIcacheSize 0x68
00515 #define LpbFirstLevelIcacheFillSize 0x6c
00516 #define LpbHashedPageTable 0x70
00517 #define LpbPanicStack 0x74
00518 #define LpbPcrPage 0x78
00519 #define LpbPdrPage 0x7c
00520 #define LpbSecondLevelDcacheSize 0x80
00521 #define LpbSecondLevelDcacheFillSize 0x84
00522 #define LpbSecondLevelIcacheSize 0x88
00523 #define LpbSecondLevelIcacheFillSize 0x8c
00524 #define LpbPcrPage2 0x90
00525 #define LpbIcacheMode 0x94
00526 #define LpbDcacheMode 0x95
00527 #define LpbNumberCongruenceClasses 0x96
00528 #define LpbKseg0Top 0x98
00529 #define LpbMemoryManagementModel 0x9e
00530 #define LpbHashedPageTableSize 0xa0
00531 #define LpbKernelKseg0PagesDescriptor 0xa8
00532 #define LpbMinimumBlockLength 0xac
00533 #define LpbMaximumBlockLength 0xb0
00534
00535
00536
00537
00538
00539 #define MadListEntry 0x0
00540 #define MadMemoryType 0x8
00541 #define MadBasePage 0xc
00542 #define MadPageCount 0x10
00543
00544
00545
00546
00547
00548 #define KUSEG_BASE 0x0
00549 #define KSEG0_BASE 0x80000000
00550 #define KSEG1_BASE PCR->Kseg0Top
00551 #define KSEG2_BASE KSEG1_BASE
00552
00553
00554
00555
00556
00557 #define PAGE_SIZE 0x1000
00558 #define PAGE_SHIFT 0xc
00559 #define PDI_SHIFT 0x16
00560 #define PTI_SHIFT 0xc
00561
00562
00563
00564
00565
00566 #define USER_BREAKPOINT 0x0
00567 #define KERNEL_BREAKPOINT 0x1
00568 #define BREAKIN_BREAKPOINT 0x2
00569
00570
00571
00572
00573
00574 #define Executive 0x0
00575 #define KernelMode 0x0
00576 #define FALSE 0x0
00577 #define TRUE 0x1
00578 #define UNCACHED_POLICY 0x2
00579 #define KiPcr 0xffffd000
00580 #define KiPcr2 0xffffe000