Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

genxx.inc

Go to the documentation of this file.
00001 /*++ 00002 00003 Copyright (c) 1995 Microsoft Corporation 00004 00005 Module Name: 00006 00007 genxx.inc 00008 00009 Abstract: 00010 00011 This file contains common code to generate assembler definitions. 00012 00013 Author: 00014 00015 David N. Cutler (davec) 9-Aug-1995 00016 00017 Revision History: 00018 00019 Forrest C. Foltz (forrestf) 26-Jan-1998 00020 00021 Modified for use with genxx.exe utility 00022 00023 --*/ 00024 00025 // 00026 // Size of a pointer in bytes. 00027 // 00028 00029 genCom("Pointer size in bytes") 00030 00031 genVal(SizeofPointer, sizeof(PVOID)) 00032 00033 // 00034 // Process state enumerated type definitions. 00035 // 00036 00037 genCom("Process State Enumerated Type Values") 00038 00039 genVal(ProcessInMemory, ProcessInMemory) 00040 genVal(ProcessOutOfMemory, ProcessOutOfMemory) 00041 genVal(ProcessInTransition, ProcessInTransition) 00042 00043 // 00044 // Thread state enumerated type definitions. 00045 // 00046 00047 genCom("Thread State Enumerated Type Values") 00048 00049 genVal(Initialized, Initialized) 00050 genVal(Ready, Ready) 00051 genVal(Running, Running) 00052 genVal(Standby, Standby) 00053 genVal(Terminated, Terminated) 00054 genVal(Waiting, Waiting) 00055 00056 // 00057 // Wait reason and wait type enumerated type definitions. 00058 // 00059 00060 EnableInc(HAL) 00061 00062 genCom("Wait Reason and Wait Type Enumerated Type Values") 00063 00064 genVal(WrExecutive, Executive) 00065 00066 DisableInc(HAL) 00067 00068 genVal(WrEventPair, WrEventPair) 00069 genVal(WaitAny, WaitAny) 00070 genVal(WaitAll, WaitAll) 00071 00072 // 00073 // APC state structure offset definitions. 00074 // 00075 00076 genCom("Apc State Structure Offset Definitions") 00077 00078 genDef(As, KAPC_STATE, ApcListHead) 00079 genDef(As, KAPC_STATE, Process) 00080 genDef(As, KAPC_STATE, KernelApcInProgress) 00081 genDef(As, KAPC_STATE, KernelApcPending) 00082 genDef(As, KAPC_STATE, UserApcPending) 00083 00084 // 00085 // Bug check code definitions 00086 // 00087 00088 EnableInc(HAL) 00089 00090 genCom("Bug Check Code Definitions") 00091 00092 genVal(APC_INDEX_MISMATCH, APC_INDEX_MISMATCH) 00093 genVal(ATTEMPTED_SWITCH_FROM_DPC, ATTEMPTED_SWITCH_FROM_DPC) 00094 genVal(DATA_BUS_ERROR, DATA_BUS_ERROR) 00095 genVal(DATA_COHERENCY_EXCEPTION, DATA_COHERENCY_EXCEPTION) 00096 genVal(HAL1_INITIALIZATION_FAILED, HAL1_INITIALIZATION_FAILED) 00097 genVal(INSTRUCTION_BUS_ERROR, INSTRUCTION_BUS_ERROR) 00098 genVal(INSTRUCTION_COHERENCY_EXCEPTION, INSTRUCTION_COHERENCY_EXCEPTION) 00099 genVal(INTERRUPT_EXCEPTION_NOT_HANDLED, INTERRUPT_EXCEPTION_NOT_HANDLED) 00100 genVal(INTERRUPT_UNWIND_ATTEMPTED, INTERRUPT_UNWIND_ATTEMPTED) 00101 genVal(INVALID_AFFINITY_SET, INVALID_AFFINITY_SET) 00102 genVal(INVALID_DATA_ACCESS_TRAP, INVALID_DATA_ACCESS_TRAP) 00103 genVal(IRQL_GT_ZERO_AT_SYSTEM_SERVICE, IRQL_GT_ZERO_AT_SYSTEM_SERVICE) 00104 genVal(IRQL_NOT_LESS_OR_EQUAL, IRQL_NOT_LESS_OR_EQUAL) 00105 genVal(KMODE_EXCEPTION_NOT_HANDLED, KMODE_EXCEPTION_NOT_HANDLED) 00106 genVal(NMI_HARDWARE_FAILURE, NMI_HARDWARE_FAILURE) 00107 genVal(NO_USER_MODE_CONTEXT, NO_USER_MODE_CONTEXT) 00108 genVal(PAGE_FAULT_WITH_INTERRUPTS_OFF, PAGE_FAULT_WITH_INTERRUPTS_OFF) 00109 genVal(PANIC_STACK_SWITCH, PANIC_STACK_SWITCH) 00110 genVal(SPIN_LOCK_INIT_FAILURE, SPIN_LOCK_INIT_FAILURE) 00111 genVal(SYSTEM_EXIT_OWNED_MUTEX, SYSTEM_EXIT_OWNED_MUTEX) 00112 genVal(SYSTEM_SERVICE_EXCEPTION, SYSTEM_SERVICE_EXCEPTION) 00113 genVal(SYSTEM_UNWIND_PREVIOUS_USER, SYSTEM_UNWIND_PREVIOUS_USER) 00114 genVal(TRAP_CAUSE_UNKNOWN, TRAP_CAUSE_UNKNOWN) 00115 genVal(UNEXPECTED_KERNEL_MODE_TRAP, UNEXPECTED_KERNEL_MODE_TRAP) 00116 00117 DisableInc(HAL) 00118 00119 // 00120 // Breakpoint types 00121 // 00122 00123 EnableInc(HAL) 00124 00125 genCom("Breakpoint type definitions") 00126 00127 genVal(DBG_STATUS_CONTROL_C, DBG_STATUS_CONTROL_C) 00128 00129 DisableInc(HAL) 00130 00131 // 00132 // Client Id structure offset definitions. 00133 // 00134 00135 genCom("Client Id Structure Offset Definitions") 00136 00137 genDef(Cid, CLIENT_ID, UniqueProcess) 00138 genDef(Cid, CLIENT_ID, UniqueThread) 00139 00140 // 00141 // Critical section structure offset definitions. 00142 // 00143 00144 genCom("Critical Section Structure Offset Definitions") 00145 00146 genDef(Cs, RTL_CRITICAL_SECTION, DebugInfo) 00147 genDef(Cs, RTL_CRITICAL_SECTION, LockCount) 00148 genDef(Cs, RTL_CRITICAL_SECTION, RecursionCount) 00149 genDef(Cs, RTL_CRITICAL_SECTION, OwningThread) 00150 genDef(Cs, RTL_CRITICAL_SECTION, LockSemaphore) 00151 genDef(Cs, RTL_CRITICAL_SECTION, SpinCount) 00152 00153 // 00154 // Critical section debug information structure offset definitions. 00155 // 00156 00157 genCom("Critical Section Debug Information Structure Offset Definitions") 00158 00159 genDef(Cs, RTL_CRITICAL_SECTION_DEBUG, Type) 00160 genDef(Cs, RTL_CRITICAL_SECTION_DEBUG, CreatorBackTraceIndex) 00161 genDef(Cs, RTL_CRITICAL_SECTION_DEBUG, CriticalSection) 00162 genDef(Cs, RTL_CRITICAL_SECTION_DEBUG, ProcessLocksList) 00163 genDef(Cs, RTL_CRITICAL_SECTION_DEBUG, EntryCount) 00164 genDef(Cs, RTL_CRITICAL_SECTION_DEBUG, ContentionCount) 00165 00166 // 00167 // Exception dispatcher context structure offset definitions. 00168 // 00169 00170 #if defined(_ALPHA_) || defined(_MIPS_) || defined(_PPC_) || defined(_IA64_) 00171 00172 genCom("Dispatcher Context Structure Offset Definitions") 00173 00174 genDef(Dc, DISPATCHER_CONTEXT, ControlPc) 00175 genDef(Dc, DISPATCHER_CONTEXT, FunctionEntry) 00176 genDef(Dc, DISPATCHER_CONTEXT, EstablisherFrame) 00177 genDef(Dc, DISPATCHER_CONTEXT, ContextRecord) 00178 00179 #endif 00180 00181 // 00182 // Exception record offset, flag, and enumerated type definitions. 00183 // 00184 00185 EnableInc(HAL) 00186 00187 genCom("Exception Record Offset, Flag, and Enumerated Type Definitions") 00188 00189 genVal(EXCEPTION_NONCONTINUABLE, EXCEPTION_NONCONTINUABLE) 00190 genVal(EXCEPTION_UNWINDING, EXCEPTION_UNWINDING) 00191 genVal(EXCEPTION_EXIT_UNWIND, EXCEPTION_EXIT_UNWIND) 00192 genVal(EXCEPTION_STACK_INVALID, EXCEPTION_STACK_INVALID) 00193 genVal(EXCEPTION_NESTED_CALL, EXCEPTION_NESTED_CALL) 00194 genVal(EXCEPTION_TARGET_UNWIND, EXCEPTION_TARGET_UNWIND) 00195 genVal(EXCEPTION_COLLIDED_UNWIND, EXCEPTION_COLLIDED_UNWIND) 00196 genVal(EXCEPTION_UNWIND, EXCEPTION_UNWIND) 00197 genVal(EXCEPTION_EXECUTE_HANDLER, EXCEPTION_EXECUTE_HANDLER) 00198 genVal(EXCEPTION_CONTINUE_SEARCH, EXCEPTION_CONTINUE_SEARCH) 00199 genVal(EXCEPTION_CONTINUE_EXECUTION, EXCEPTION_CONTINUE_EXECUTION) 00200 00201 #if defined(_X86_) 00202 00203 genVal(EXCEPTION_CHAIN_END, (ULONG)EXCEPTION_CHAIN_END) 00204 00205 #endif 00206 00207 genSpc() 00208 00209 genVal(ExceptionContinueExecution, ExceptionContinueExecution) 00210 genVal(ExceptionContinueSearch, ExceptionContinueSearch) 00211 genVal(ExceptionNestedException, ExceptionNestedException) 00212 genVal(ExceptionCollidedUnwind, ExceptionCollidedUnwind) 00213 00214 genSpc() 00215 00216 genDef(Er, EXCEPTION_RECORD, ExceptionCode) 00217 genDef(Er, EXCEPTION_RECORD, ExceptionFlags) 00218 genDef(Er, EXCEPTION_RECORD, ExceptionRecord) 00219 genDef(Er, EXCEPTION_RECORD, ExceptionAddress) 00220 genDef(Er, EXCEPTION_RECORD, NumberParameters) 00221 genDef(Er, EXCEPTION_RECORD, ExceptionInformation) 00222 genVal(ExceptionRecordLength, (sizeof(EXCEPTION_RECORD) + 15) & (~15)) 00223 00224 DisableInc(HAL) 00225 00226 // 00227 // Fast Mutex structure offset definitions. 00228 // 00229 00230 EnableInc(HAL) 00231 00232 genCom("Fast Mutex Structure Offset Definitions") 00233 00234 genDef(Fm, FAST_MUTEX, Count) 00235 genDef(Fm, FAST_MUTEX, Owner) 00236 genDef(Fm, FAST_MUTEX, Contention) 00237 genDef(Fm, FAST_MUTEX, Event) 00238 genDef(Fm, FAST_MUTEX, OldIrql) 00239 00240 // 00241 // Interrupt priority request level definitions 00242 // 00243 00244 genCom("Interrupt Priority Request Level Definitions") 00245 00246 genVal(APC_LEVEL, APC_LEVEL) 00247 genVal(DISPATCH_LEVEL, DISPATCH_LEVEL) 00248 00249 #if defined(_X86_) 00250 00251 genVal(CLOCK1_LEVEL, CLOCK1_LEVEL) 00252 genVal(CLOCK2_LEVEL, CLOCK2_LEVEL) 00253 00254 #endif 00255 00256 genVal(IPI_LEVEL, IPI_LEVEL) 00257 genVal(POWER_LEVEL, POWER_LEVEL) 00258 genVal(PROFILE_LEVEL, PROFILE_LEVEL) 00259 genVal(HIGH_LEVEL, HIGH_LEVEL) 00260 genVal(SYNCH_LEVEL, SYNCH_LEVEL) 00261 00262 // 00263 // Large integer structure offset definitions. 00264 // 00265 00266 genCom("Large Integer Structure Offset Definitions") 00267 00268 genDef(Li, LARGE_INTEGER, LowPart) 00269 genDef(Li, LARGE_INTEGER, HighPart) 00270 00271 // 00272 // List entry structure offset definitions. 00273 // 00274 00275 genCom("List Entry Structure Offset Definitions") 00276 00277 genDef(Ls, LIST_ENTRY, Flink) 00278 genDef(Ls, LIST_ENTRY, Blink) 00279 00280 // 00281 // String structure offset definitions. 00282 // 00283 00284 genCom("String Structure Offset Definitions") 00285 00286 genDef(Str, STRING, Length) 00287 genDef(Str, STRING, MaximumLength) 00288 genDef(Str, STRING, Buffer) 00289 00290 // 00291 // System time structure offset definitions. 00292 // 00293 00294 #if defined(_MIPS_) || defined(_PPC_) || defined(_X86_) 00295 00296 genCom("System Time Structure Offset Definitions") 00297 00298 genAlt(StLowTime, KSYSTEM_TIME, LowPart) 00299 genDef(St, KSYSTEM_TIME, High1Time) 00300 genDef(St, KSYSTEM_TIME, High2Time) 00301 00302 #endif 00303 00304 // 00305 // Time structure offset definitions. 00306 // 00307 00308 genCom("Time Structure Offset Definitions") 00309 00310 genAlt(TmLowTime, LARGE_INTEGER, LowPart) 00311 genAlt(TmHighTime, LARGE_INTEGER , HighPart) 00312 00313 DisableInc(HAL) 00314 00315 // 00316 // Thread switch counter structure offset definitions. 00317 // 00318 00319 genCom("Thread Switch Counter Offset Definitions") 00320 00321 genDef(Tw, KTHREAD_SWITCH_COUNTERS, FindAny) 00322 genDef(Tw, KTHREAD_SWITCH_COUNTERS, FindIdeal) 00323 genDef(Tw, KTHREAD_SWITCH_COUNTERS, FindLast) 00324 genDef(Tw, KTHREAD_SWITCH_COUNTERS, IdleAny) 00325 genDef(Tw, KTHREAD_SWITCH_COUNTERS, IdleCurrent) 00326 genDef(Tw, KTHREAD_SWITCH_COUNTERS, IdleIdeal) 00327 genDef(Tw, KTHREAD_SWITCH_COUNTERS, IdleLast) 00328 genDef(Tw, KTHREAD_SWITCH_COUNTERS, PreemptAny) 00329 genDef(Tw, KTHREAD_SWITCH_COUNTERS, PreemptCurrent) 00330 genDef(Tw, KTHREAD_SWITCH_COUNTERS, PreemptLast) 00331 genDef(Tw, KTHREAD_SWITCH_COUNTERS, SwitchToIdle) 00332 00333 // 00334 // Status code definitions 00335 // 00336 00337 genCom("Status Code Definitions") 00338 00339 #if defined(_ALPHA_) 00340 00341 genVal(STATUS_ALPHA_ARITHMETIC_EXCEPTION, STATUS_ALPHA_ARITHMETIC_EXCEPTION) 00342 genVal(STATUS_ALPHA_BAD_VIRTUAL_ADDRESS, STATUS_ALPHA_BAD_VIRTUAL_ADDRESS) 00343 genVal(STATUS_ALPHA_FLOATING_NOT_IMPLEMENTED, STATUS_ALPHA_FLOATING_NOT_IMPLEMENTED) 00344 genVal(STATUS_ALPHA_GENTRAP, STATUS_ALPHA_GENTRAP) 00345 genVal(STATUS_ALPHA_MACHINE_CHECK, (DATA_BUS_ERROR | 0xdfff0000)) 00346 00347 #endif 00348 00349 #if defined(_IA64_) 00350 genVal(STATUS_IA64_INVALID_STACK, STATUS_IA64_INVALID_STACK) 00351 #endif 00352 00353 genVal(STATUS_ACCESS_VIOLATION, STATUS_ACCESS_VIOLATION) 00354 genVal(STATUS_ARRAY_BOUNDS_EXCEEDED, STATUS_ARRAY_BOUNDS_EXCEEDED) 00355 genVal(STATUS_BAD_COMPRESSION_BUFFER, STATUS_BAD_COMPRESSION_BUFFER) 00356 genVal(STATUS_BREAKPOINT, STATUS_BREAKPOINT) 00357 genVal(STATUS_DATATYPE_MISALIGNMENT, STATUS_DATATYPE_MISALIGNMENT) 00358 genVal(STATUS_FLOAT_DENORMAL_OPERAND, STATUS_FLOAT_DENORMAL_OPERAND) 00359 genVal(STATUS_FLOAT_DIVIDE_BY_ZERO, STATUS_FLOAT_DIVIDE_BY_ZERO) 00360 genVal(STATUS_FLOAT_INEXACT_RESULT, STATUS_FLOAT_INEXACT_RESULT) 00361 genVal(STATUS_FLOAT_INVALID_OPERATION, STATUS_FLOAT_INVALID_OPERATION) 00362 genVal(STATUS_FLOAT_OVERFLOW, STATUS_FLOAT_OVERFLOW) 00363 genVal(STATUS_FLOAT_STACK_CHECK, STATUS_FLOAT_STACK_CHECK) 00364 genVal(STATUS_FLOAT_UNDERFLOW, STATUS_FLOAT_UNDERFLOW) 00365 genVal(STATUS_FLOAT_MULTIPLE_FAULTS, STATUS_FLOAT_MULTIPLE_FAULTS) 00366 genVal(STATUS_FLOAT_MULTIPLE_TRAPS, STATUS_FLOAT_MULTIPLE_TRAPS) 00367 genVal(STATUS_GUARD_PAGE_VIOLATION, STATUS_GUARD_PAGE_VIOLATION) 00368 genVal(STATUS_ILLEGAL_FLOAT_CONTEXT, STATUS_ILLEGAL_FLOAT_CONTEXT) 00369 genVal(STATUS_ILLEGAL_INSTRUCTION, STATUS_ILLEGAL_INSTRUCTION) 00370 genVal(STATUS_INSTRUCTION_MISALIGNMENT, STATUS_INSTRUCTION_MISALIGNMENT) 00371 genVal(STATUS_INVALID_HANDLE, STATUS_INVALID_HANDLE) 00372 genVal(STATUS_INVALID_LOCK_SEQUENCE, STATUS_INVALID_LOCK_SEQUENCE) 00373 genVal(STATUS_INVALID_OWNER, STATUS_INVALID_OWNER) 00374 genVal(STATUS_INVALID_PARAMETER_1, STATUS_INVALID_PARAMETER_1) 00375 genVal(STATUS_INVALID_SYSTEM_SERVICE, STATUS_INVALID_SYSTEM_SERVICE) 00376 genVal(STATUS_INTEGER_DIVIDE_BY_ZERO, STATUS_INTEGER_DIVIDE_BY_ZERO) 00377 genVal(STATUS_INTEGER_OVERFLOW, STATUS_INTEGER_OVERFLOW) 00378 genVal(STATUS_IN_PAGE_ERROR, STATUS_IN_PAGE_ERROR) 00379 genVal(STATUS_KERNEL_APC, STATUS_KERNEL_APC) 00380 genVal(STATUS_LONGJUMP, STATUS_LONGJUMP) 00381 genVal(STATUS_NO_CALLBACK_ACTIVE, STATUS_NO_CALLBACK_ACTIVE) 00382 genVal(STATUS_NO_EVENT_PAIR, STATUS_NO_EVENT_PAIR) 00383 genVal(STATUS_PRIVILEGED_INSTRUCTION, STATUS_PRIVILEGED_INSTRUCTION) 00384 genVal(STATUS_SINGLE_STEP, STATUS_SINGLE_STEP) 00385 genVal(STATUS_STACK_OVERFLOW, STATUS_STACK_OVERFLOW) 00386 genVal(STATUS_SUCCESS, STATUS_SUCCESS) 00387 genVal(STATUS_THREAD_IS_TERMINATING, STATUS_THREAD_IS_TERMINATING) 00388 genVal(STATUS_TIMEOUT, STATUS_TIMEOUT) 00389 genVal(STATUS_UNWIND, STATUS_UNWIND) 00390 genVal(STATUS_WAKE_SYSTEM_DEBUGGER, STATUS_WAKE_SYSTEM_DEBUGGER) 00391 00392 // 00393 // Define kernel object structure definitions. 00394 // 00395 // APC object structure defintions. 00396 // 00397 00398 genCom("APC Object Structure Offset Definitions") 00399 00400 genDef(Ap, KAPC, Type) 00401 genDef(Ap, KAPC, Size) 00402 genDef(Ap, KAPC, Thread) 00403 genDef(Ap, KAPC, ApcListEntry) 00404 genDef(Ap, KAPC, KernelRoutine) 00405 genDef(Ap, KAPC, RundownRoutine) 00406 genDef(Ap, KAPC, NormalRoutine) 00407 genDef(Ap, KAPC, NormalContext) 00408 genDef(Ap, KAPC, SystemArgument1) 00409 genDef(Ap, KAPC, SystemArgument2) 00410 genDef(Ap, KAPC, ApcStateIndex) 00411 genDef(Ap, KAPC, ApcMode) 00412 genDef(Ap, KAPC, Inserted) 00413 genVal(ApcObjectLength, sizeof(KAPC)) 00414 00415 // 00416 // DPC Object structure definitions. 00417 // 00418 00419 EnableInc(HAL) 00420 00421 genCom("DPC object Structure Offset Definitions") 00422 00423 genDef(Dp, KDPC, Type) 00424 genDef(Dp, KDPC, Number) 00425 genDef(Dp, KDPC, Importance) 00426 genDef(Dp, KDPC, DpcListEntry) 00427 genDef(Dp, KDPC, DeferredRoutine) 00428 genDef(Dp, KDPC, DeferredContext) 00429 genDef(Dp, KDPC, SystemArgument1) 00430 genDef(Dp, KDPC, SystemArgument2) 00431 genDef(Dp, KDPC, Lock) 00432 genVal(DpcObjectLength, sizeof(KDPC)) 00433 00434 DisableInc(HAL) 00435 00436 // 00437 // Device queue object structure definitions. 00438 // 00439 00440 genCom("Device Queue Object Structure Offset Definitions") 00441 00442 genDef(Dv, KDEVICE_QUEUE, Type) 00443 genDef(Dv, KDEVICE_QUEUE, Size) 00444 genDef(Dv, KDEVICE_QUEUE, DeviceListHead) 00445 genAlt(DvSpinLock, KDEVICE_QUEUE, Lock) 00446 genDef(Dv, KDEVICE_QUEUE, Busy) 00447 genVal(DeviceQueueObjectLength, sizeof(KDEVICE_QUEUE)) 00448 00449 // 00450 // Device object entry structure definitions. 00451 // 00452 00453 genCom("Device Queue Entry Structure Offset Definitions") 00454 00455 genDef(De, KDEVICE_QUEUE_ENTRY, DeviceListEntry) 00456 genDef(De, KDEVICE_QUEUE_ENTRY, SortKey) 00457 genDef(De, KDEVICE_QUEUE_ENTRY, Inserted) 00458 genVal(DeviceQueueEntryLength, sizeof(KDEVICE_QUEUE_ENTRY)) 00459 00460 // 00461 // Event object structure definitions. 00462 // 00463 00464 genCom("Event Object Structure Offset Definitions") 00465 00466 genDef(Ev, DISPATCHER_HEADER, Type) 00467 genDef(Ev, DISPATCHER_HEADER, Size) 00468 genDef(Ev, DISPATCHER_HEADER, SignalState) 00469 genAlt(EvWaitListHead, KEVENT, Header.WaitListHead) 00470 genVal(EventObjectLength, sizeof(KEVENT)) 00471 00472 // 00473 // Event pair object structure definitions. 00474 // 00475 00476 genCom("Event Pair Object Structure Offset Definitions") 00477 00478 genDef(Ep, KEVENT_PAIR, Type) 00479 genDef(Ep, KEVENT_PAIR, Size) 00480 genDef(Ep, KEVENT_PAIR, EventLow) 00481 genDef(Ep, KEVENT_PAIR, EventHigh) 00482 00483 #if defined(_MIPS_) || defined(_PPC_) || defined(_IA64_) 00484 00485 #define EventOffset (OFFSET(KEVENT_PAIR, EventHigh) - \ 00486 OFFSET(KEVENT_PAIR, EventLow)) 00487 00488 // if ((EventOffset & (EventOffset - 1)) != 0) { 00489 // fprintf(stderr, "GENXX: Event offset not log2N\n") 00490 // } 00491 00492 genVal(SET_LOW_WAIT_HIGH, - (LONG)(EventOffset * 2)) 00493 genVal(SET_HIGH_WAIT_LOW, - (LONG)EventOffset) 00494 genVal(SET_EVENT_PAIR_MASK, (LONG)EventOffset) 00495 00496 #endif 00497 00498 // 00499 // Interrupt object structure definitions. 00500 // 00501 00502 #if defined(_ALPHA_) || defined(_MIPS_) || defined(_PPC_) || defined(_IA64_) 00503 00504 EnableInc(HAL) 00505 00506 #endif 00507 00508 genCom("Interrupt Object Structure Offset Definitions") 00509 00510 genVal(InLevelSensitive, LevelSensitive) 00511 genVal(InLatched, Latched) 00512 00513 genSpc() 00514 00515 genDef(In, KINTERRUPT, Type) 00516 genDef(In, KINTERRUPT, Size) 00517 genDef(In, KINTERRUPT, InterruptListEntry) 00518 genDef(In, KINTERRUPT, ServiceRoutine) 00519 genDef(In, KINTERRUPT, ServiceContext) 00520 genDef(In, KINTERRUPT, SpinLock) 00521 genDef(In, KINTERRUPT, ActualLock) 00522 genDef(In, KINTERRUPT, DispatchAddress) 00523 genDef(In, KINTERRUPT, Vector) 00524 genDef(In, KINTERRUPT, Irql) 00525 genDef(In, KINTERRUPT, SynchronizeIrql) 00526 genDef(In, KINTERRUPT, FloatingSave) 00527 genDef(In, KINTERRUPT, Connected) 00528 genDef(In, KINTERRUPT, Number) 00529 genDef(In, KINTERRUPT, Mode) 00530 genDef(In, KINTERRUPT, ShareVector) 00531 genDef(In, KINTERRUPT, DispatchCode) 00532 genVal(InterruptObjectLength, sizeof(KINTERRUPT)) 00533 00534 #if defined(_X86_) 00535 00536 genSpc() 00537 00538 genVal(NORMAL_DISPATCH_LENGTH, NORMAL_DISPATCH_LENGTH * sizeof(ULONG)) 00539 genVal(DISPATCH_LENGTH, DISPATCH_LENGTH * sizeof(ULONG)) 00540 00541 #endif 00542 00543 #if defined(_ALPHA_) || defined(_MIPS_) || defined(_PPC_) || defined(_IA64_) 00544 00545 DisableInc(HAL) 00546 00547 #endif 00548 00549 // 00550 // Process object structure offset definitions. 00551 // 00552 00553 genCom("Process Object Structure Offset Definitions") 00554 00555 genDef(Pr, DISPATCHER_HEADER, Type) 00556 genDef(Pr, DISPATCHER_HEADER, Size) 00557 genDef(Pr, DISPATCHER_HEADER, SignalState) 00558 genDef(Pr, KPROCESS, ProfileListHead) 00559 genDef(Pr, KPROCESS, DirectoryTableBase) 00560 00561 #if defined(_X86_) 00562 00563 genDef(Pr, KPROCESS, LdtDescriptor) 00564 genDef(Pr, KPROCESS, Int21Descriptor) 00565 genDef(Pr, KPROCESS, IopmOffset) 00566 genDef(Pr, KPROCESS, Iopl) 00567 genDef(Pr, KPROCESS, VdmFlag) 00568 00569 #endif 00570 00571 #if defined(_IA64_) 00572 00573 genDef(Pr, KPROCESS, LdtDescriptor) 00574 genDef(Pr, KPROCESS, Int21Descriptor) 00575 genDef(Pr, KPROCESS, VdmFlag) 00576 00577 genDef(Pr, KPROCESS, ProcessRegion) 00578 genDef(Pr, KPROCESS, SessionRegion) 00579 genDef(Pr, KPROCESS, SessionMapInfo) 00580 genDef(Pr, KPROCESS, SessionParentBase) 00581 00582 #endif 00583 00584 genDef(Pr, KPROCESS, ActiveProcessors) 00585 00586 #if defined(_ALPHA_) 00587 00588 genDef(Pr, KPROCESS, RunOnProcessors) 00589 genDef(Pr, KPROCESS, ProcessSequence) 00590 genDef(Pr, KPROCESS, ProcessAsn) 00591 00592 #endif 00593 00594 genDef(Pr, KPROCESS, KernelTime) 00595 genDef(Pr, KPROCESS, UserTime) 00596 genDef(Pr, KPROCESS, ReadyListHead) 00597 genDef(Pr, KPROCESS, SwapListEntry) 00598 genDef(Pr, KPROCESS, ThreadListHead) 00599 genDef(Pr, KPROCESS, ProcessLock) 00600 genDef(Pr, KPROCESS, Affinity) 00601 genDef(Pr, KPROCESS, StackCount) 00602 genDef(Pr, KPROCESS, BasePriority) 00603 genDef(Pr, KPROCESS, ThreadQuantum) 00604 genDef(Pr, KPROCESS, AutoAlignment) 00605 genDef(Pr, KPROCESS, State) 00606 genVal(ProcessObjectLength, ((sizeof(KPROCESS) + 15) & ~15)) 00607 genVal(ExtendedProcessObjectLength, ((sizeof(EPROCESS) + 15) & ~15)) 00608 00609 // 00610 // Profile object structure offset definitions. 00611 // 00612 00613 genCom("Profile Object Structure Offset Definitions") 00614 00615 genDef(Pf, KPROFILE, Type) 00616 genDef(Pf, KPROFILE, Size) 00617 genDef(Pf, KPROFILE, ProfileListEntry) 00618 genDef(Pf, KPROFILE, Process) 00619 genDef(Pf, KPROFILE, RangeBase) 00620 genDef(Pf, KPROFILE, RangeLimit) 00621 genDef(Pf, KPROFILE, BucketShift) 00622 genDef(Pf, KPROFILE, Buffer) 00623 genDef(Pf, KPROFILE, Segment) 00624 genDef(Pf, KPROFILE, Affinity) 00625 genDef(Pf, KPROFILE, Source) 00626 genDef(Pf, KPROFILE, Started) 00627 genVal(ProfileObjectLength, sizeof(KPROFILE)) 00628 00629 // 00630 // Queue object structure offset definitions. 00631 // 00632 00633 genCom("Queue Object Structure Offset Definitions") 00634 00635 genDef(Qu, DISPATCHER_HEADER, Type) 00636 genDef(Qu, DISPATCHER_HEADER, Size) 00637 genDef(Qu, DISPATCHER_HEADER, SignalState) 00638 genDef(Qu, KQUEUE, EntryListHead) 00639 genDef(Qu, KQUEUE, CurrentCount) 00640 genDef(Qu, KQUEUE, MaximumCount) 00641 genDef(Qu, KQUEUE, ThreadListHead) 00642 genVal(QueueObjectLength, sizeof(KQUEUE)) 00643 00644 // 00645 // Thread object structure offset definitions 00646 // 00647 00648 genCom("Thread Object Structure Offset Definitions") 00649 00650 genDef(Ee, EEVENT_PAIR, KernelEventPair) 00651 genDef(Et, ETHREAD, Cid) 00652 genDef(Et, ETHREAD, PerformanceCountLow) 00653 genDef(Et, ETHREAD, PerformanceCountHigh) 00654 genVal(EtEthreadLength, ((sizeof(ETHREAD) + 15) & ~15)) 00655 00656 genSpc() 00657 00658 genDef(Th, DISPATCHER_HEADER, Type) 00659 genDef(Th, DISPATCHER_HEADER, Size) 00660 genDef(Th, DISPATCHER_HEADER, SignalState) 00661 genDef(Th, KTHREAD, MutantListHead) 00662 genDef(Th, KTHREAD, InitialStack) 00663 genDef(Th, KTHREAD, StackLimit) 00664 genDef(Th, KTHREAD, Teb) 00665 genDef(Th, KTHREAD, TlsArray) 00666 genDef(Th, KTHREAD, KernelStack) 00667 genDef(Th, KTHREAD, DebugActive) 00668 genDef(Th, KTHREAD, State) 00669 genDef(Th, KTHREAD, Alerted) 00670 genDef(Th, KTHREAD, Iopl) 00671 genDef(Th, KTHREAD, NpxState) 00672 genDef(Th, KTHREAD, Saturation) 00673 genDef(Th, KTHREAD, Priority) 00674 genDef(Th, KTHREAD, ApcState) 00675 genDef(Th, KTHREAD, ContextSwitches) 00676 genDef(Th, KTHREAD, WaitStatus) 00677 genDef(Th, KTHREAD, WaitIrql) 00678 genDef(Th, KTHREAD, WaitMode) 00679 genDef(Th, KTHREAD, WaitNext) 00680 genDef(Th, KTHREAD, WaitReason) 00681 genDef(Th, KTHREAD, WaitBlockList) 00682 genDef(Th, KTHREAD, WaitListEntry) 00683 genDef(Th, KTHREAD, WaitTime) 00684 genDef(Th, KTHREAD, BasePriority) 00685 genDef(Th, KTHREAD, DecrementCount) 00686 genDef(Th, KTHREAD, PriorityDecrement) 00687 genDef(Th, KTHREAD, Quantum) 00688 genDef(Th, KTHREAD, WaitBlock) 00689 genDef(Th, KTHREAD, KernelApcDisable) 00690 genDef(Th, KTHREAD, UserAffinity) 00691 genDef(Th, KTHREAD, SystemAffinityActive) 00692 genDef(Th, KTHREAD, ServiceTable) 00693 // genDef(Th, KTHREAD, Channel) 00694 // genDef(Th, KTHREAD, Section) 00695 // genDef(Th, KTHREAD, SystemView) 00696 // genDef(Th, KTHREAD, ThreadView) 00697 genDef(Th, KTHREAD, Queue) 00698 genDef(Th, KTHREAD, ApcQueueLock) 00699 genDef(Th, KTHREAD, Timer) 00700 genDef(Th, KTHREAD, QueueListEntry) 00701 genDef(Th, KTHREAD, Affinity) 00702 genDef(Th, KTHREAD, Preempted) 00703 genDef(Th, KTHREAD, ProcessReadyQueue) 00704 genDef(Th, KTHREAD, KernelStackResident) 00705 genDef(Th, KTHREAD, NextProcessor) 00706 genDef(Th, KTHREAD, CallbackStack) 00707 genDef(Th, KTHREAD, Win32Thread) 00708 genDef(Th, KTHREAD, TrapFrame) 00709 genDef(Th, KTHREAD, ApcStatePointer) 00710 genDef(Th, KTHREAD, PreviousMode) 00711 genDef(Th, KTHREAD, EnableStackSwap) 00712 genDef(Th, KTHREAD, LargeStack) 00713 genDef(Th, KTHREAD, KernelTime) 00714 genDef(Th, KTHREAD, UserTime) 00715 genDef(Th, KTHREAD, SavedApcState) 00716 genDef(Th, KTHREAD, Alertable) 00717 genDef(Th, KTHREAD, ApcStateIndex) 00718 genDef(Th, KTHREAD, ApcQueueable) 00719 genDef(Th, KTHREAD, AutoAlignment) 00720 genDef(Th, KTHREAD, StackBase) 00721 genDef(Th, KTHREAD, SuspendApc) 00722 genDef(Th, KTHREAD, SuspendSemaphore) 00723 genDef(Th, KTHREAD, ThreadListEntry) 00724 genDef(Th, KTHREAD, FreezeCount) 00725 genDef(Th, KTHREAD, SuspendCount) 00726 genDef(Th, KTHREAD, IdealProcessor) 00727 genDef(Th, KTHREAD, DisableBoost) 00728 00729 #if defined(_IA64_) 00730 00731 genDef(Th, KTHREAD, InitialBStore) 00732 genDef(Th, KTHREAD, BStoreLimit) 00733 genDef(Th, KTHREAD, KernelBStore) 00734 genDef(Th, KTHREAD, CallbackBStore) 00735 00736 #endif // defined(_IA64_) 00737 00738 genVal(ThreadObjectLength, ((sizeof(KTHREAD) + 15) & ~15)) 00739 genVal(ExtendedThreadObjectLength, ((sizeof(ETHREAD) + 15) & ~15)) 00740 00741 genSpc() 00742 00743 genVal(EVENT_WAIT_BLOCK_OFFSET, OFFSET(KTHREAD, WaitBlock) + (sizeof(KWAIT_BLOCK) * EVENT_WAIT_BLOCK)) 00744 00745 #if defined(_X86_) 00746 00747 genVal(NPX_STATE_NOT_LOADED, NPX_STATE_NOT_LOADED) 00748 genVal(NPX_STATE_LOADED, NPX_STATE_LOADED) 00749 00750 #endif 00751 00752 // 00753 // Timer object structure offset definitions 00754 // 00755 00756 genCom("Timer object Structure Offset Definitions") 00757 00758 genDef(Ti, DISPATCHER_HEADER, Type) 00759 genDef(Ti, DISPATCHER_HEADER, Size) 00760 genDef(Ti, DISPATCHER_HEADER, Inserted) 00761 genDef(Ti, DISPATCHER_HEADER, SignalState) 00762 genDef(Ti, KTIMER, DueTime) 00763 genDef(Ti, KTIMER, TimerListEntry) 00764 genDef(Ti, KTIMER, Dpc) 00765 genDef(Ti, KTIMER, Period) 00766 genVal(TimerObjectLength, sizeof(KTIMER)) 00767 00768 genSpc() 00769 00770 genVal(TIMER_TABLE_SIZE, TIMER_TABLE_SIZE) 00771 00772 // 00773 // Wait block structure offset definitions 00774 // 00775 00776 genCom("Wait Block Structure Offset Definitions") 00777 00778 genDef(Wb, KWAIT_BLOCK, WaitListEntry) 00779 genDef(Wb, KWAIT_BLOCK, Thread) 00780 genDef(Wb, KWAIT_BLOCK, Object) 00781 genDef(Wb, KWAIT_BLOCK, NextWaitBlock) 00782 genDef(Wb, KWAIT_BLOCK, WaitKey) 00783 genDef(Wb, KWAIT_BLOCK, WaitType) 00784 00785 // 00786 // Fiber structure offset definitions. 00787 // 00788 00789 genCom("Fiber Structure Offset Definitions") 00790 00791 genDef(Fb, FIBER, FiberData) 00792 genDef(Fb, FIBER, ExceptionList) 00793 genDef(Fb, FIBER, StackBase) 00794 genDef(Fb, FIBER, StackLimit) 00795 genDef(Fb, FIBER, DeallocationStack) 00796 genDef(Fb, FIBER, FiberContext) 00797 genDef(Fb, FIBER, Wx86Tib) 00798 00799 #if defined(_IA64_) 00800 00801 genDef(Fb, FIBER, DeallocationBStore) 00802 genDef(Fb, FIBER, BStoreLimit) 00803 00804 #endif // defined(_IA64_) 00805 00806 // 00807 // Process environment block structure offset definitions. 00808 // 00809 00810 genCom("Process Environment Block Structure Offset Definitions") 00811 00812 genDef(Pe, PEB, KernelCallbackTable) 00813 00814 // 00815 // Define System Service Descriptor Table structures. 00816 // 00817 00818 genCom("System Service Descriptor Table Structure Definitions") 00819 00820 genVal(NUMBER_SERVICE_TABLES, NUMBER_SERVICE_TABLES) 00821 genVal(SERVICE_NUMBER_MASK, SERVICE_NUMBER_MASK) 00822 genVal(SERVICE_TABLE_SHIFT, SERVICE_TABLE_SHIFT) 00823 genVal(SERVICE_TABLE_MASK, SERVICE_TABLE_MASK) 00824 genVal(SERVICE_TABLE_TEST, SERVICE_TABLE_TEST) 00825 00826 genSpc() 00827 00828 genDef(Sd, KSERVICE_TABLE_DESCRIPTOR, Base) 00829 genDef(Sd, KSERVICE_TABLE_DESCRIPTOR, Count) 00830 genDef(Sd, KSERVICE_TABLE_DESCRIPTOR, Limit) 00831 #if defined(_IA64_) 00832 genDef(Sd, KSERVICE_TABLE_DESCRIPTOR, TableBaseGpOffset) 00833 #endif 00834 genDef(Sd, KSERVICE_TABLE_DESCRIPTOR, Number) 00835 00836 // 00837 // Common TEB structure offset definitions 00838 // 00839 00840 genCom("Thread Environment Block Structure Offset Definitions") 00841 00842 genDef(Te, NT_TIB, StackBase) 00843 genDef(Te, NT_TIB, StackLimit) 00844 genDef(Te, NT_TIB, FiberData) 00845 genDef(Te, TEB, EnvironmentPointer) 00846 genDef(Te, TEB, ClientId) 00847 genDef(Te, TEB, ActiveRpcHandle) 00848 genDef(Te, TEB, ThreadLocalStoragePointer) 00849 genDef(Te, TEB, CountOfOwnedCriticalSections) 00850 genAlt(TePeb, TEB, ProcessEnvironmentBlock) 00851 genDef(Te, TEB, CsrClientThread) 00852 genDef(Te, TEB, WOW32Reserved) 00853 genAlt(TeSoftFpcr, TEB, FpSoftwareStatusRegister) 00854 genDef(Te, TEB, GdiClientPID) 00855 genDef(Te, TEB, GdiClientTID) 00856 genDef(Te, TEB, GdiThreadLocalInfo) 00857 genDef(Te, TEB, glDispatchTable) 00858 genDef(Te, TEB, glReserved1) 00859 genDef(Te, TEB, glReserved2) 00860 genDef(Te, TEB, glSectionInfo) 00861 genDef(Te, TEB, glSection) 00862 genDef(Te, TEB, glTable) 00863 genDef(Te, TEB, glCurrentRC) 00864 genDef(Te, TEB, glContext) 00865 genDef(Te, TEB, DeallocationStack) 00866 genDef(Te, TEB, TlsSlots) 00867 genDef(Te, TEB, Vdm) 00868 genDef(Te, TEB, GdiBatchCount) 00869 genDef(Te, TEB, Instrumentation) 00870 00871 #if defined(_IA64_) 00872 00873 genDef(Te, NT_TIB, ExceptionList) 00874 genDef(Te, TEB, DeallocationBStore) 00875 genDef(Te, TEB, BStoreLimit) 00876 genDef(Te, TEB, DbgSsReserved) 00877 00878 #endif // defined(_IA64_) 00879 00880 genVal(ThreadEnvironmentBlockLength, sizeof(TEB)) 00881 00882 // 00883 // Lock Queue structure definitions. 00884 // 00885 00886 #if defined(_X86_) 00887 00888 EnableInc(HAL) 00889 00890 #endif 00891 00892 genCom("Lock Queue Structure Offset Definitions") 00893 00894 genNam(LOCK_QUEUE_WAIT) 00895 genNam(LOCK_QUEUE_OWNER) 00896 genVal(LOCK_QUEUE_HEADER_SIZE, sizeof(KSPIN_LOCK_QUEUE)) 00897 genSpc() 00898 00899 genNam(LockQueueDispatcherLock) 00900 genNam(LockQueueContextSwapLock) 00901 genNam(LockQueuePfnLock) 00902 genSpc() 00903 00904 genDef(Lq, KSPIN_LOCK_QUEUE, Next) 00905 genDef(Lq, KSPIN_LOCK_QUEUE, Lock) 00906 00907 #if defined(_X86_) 00908 00909 DisableInc(HAL) 00910 00911 #endif

Generated on Sat May 15 19:40:11 2004 for test by doxygen 1.3.7