RAW(""),
RAW("#include <kxarm.h>"),
RAW(""),
HEADER("CPSR Values"),
CONSTANT(CPSRM_USER),
CONSTANT(CPSRM_FIQ),
CONSTANT(CPSRM_INT),
CONSTANT(CPSRM_SVC),
CONSTANT(CPSRM_ABT),
CONSTANT(CPSRM_UDF),
CONSTANT(CPSRM_SYS),
CONSTANT(CPSRM_MASK),
CONSTANT(SYSCALL_PSR),
CONSTANT(CPSRF_N),
CONSTANT(CPSRF_Z),
CONSTANT(CPSRF_C),
CONSTANT(CPSRF_V),
CONSTANT(CPSRF_Q),
CONSTANT(CPSR_IT_MASK),
CONSTANT(FPSCRF_N),
CONSTANT(FPSCRF_Z),
CONSTANT(FPSCRF_C),
CONSTANT(FPSCRF_V),
CONSTANT(FPSCRF_QC),
CONSTANT(FPSCRM_AHP),
CONSTANT(FPSCRM_DN),
CONSTANT(FPSCRM_FZ),
CONSTANT(FPSCRM_RMODE_MASK),
CONSTANT(FPSCRM_RMODE_RN),
CONSTANT(FPSCRM_RMODE_RP),
CONSTANT(FPSCRM_RMODE_RM),
CONSTANT(FPSCRM_RMODE_RZ),
CONSTANT(FPSCRM_DEPRECATED),
CONSTANT(FPSCR_IDE),
CONSTANT(FPSCR_IXE),
CONSTANT(FPSCR_UFE),
CONSTANT(FPSCR_OFE),
CONSTANT(FPSCR_DZE),
CONSTANT(FPSCR_IOE),
CONSTANT(FPSCR_IDC),
CONSTANT(FPSCR_IXC),
CONSTANT(FPSCR_UFC),
CONSTANT(FPSCR_OFC),
CONSTANT(FPSCR_DZC),
CONSTANT(FPSCR_IOC),
CONSTANT(CPSRC_INT),
CONSTANT(CPSRC_ABORT),
CONSTANT(CPSRC_THUMB),
CONSTANT(SWFS_PAGE_FAULT),
CONSTANT(SWFS_ALIGN_FAULT),
CONSTANT(SWFS_HWERR_FAULT),
CONSTANT(SWFS_DEBUG_FAULT),
CONSTANT(SWFS_EXECUTE),
CONSTANT(SWFS_WRITE),
CONSTANT(CP14_DBGDSCR_MOE_MASK),
CONSTANT(CP14_DBGDSCR_MOE_SHIFT),
CONSTANT(CP14_DBGDSCR_MOE_HALT),
CONSTANT(CP14_DBGDSCR_MOE_BP),
CONSTANT(CP14_DBGDSCR_MOE_WPASYNC),
CONSTANT(CP14_DBGDSCR_MOE_BKPT),
CONSTANT(CP14_DBGDSCR_MOE_EXTERNAL),
CONSTANT(CP14_DBGDSCR_MOE_VECTOR),
CONSTANT(CP14_DBGDSCR_MOE_WPSYNC),
CONSTANT(CP15_PMCR_DP),
CONSTANT(CP15_PMCR_X),
CONSTANT(CP15_PMCR_CLKCNT_DIV),
CONSTANT(CP15_PMCR_CLKCNT_RST),
CONSTANT(CP15_PMCR_CNT_RST),
CONSTANT(CP15_PMCR_ENABLE),
HEADER("DebugService Control Types"),
#if (NTDDI_VERSION >= NTDDI_WIN10)
HEADER("Handle table entry definition"),
#define EXHANDLE_TABLE_ENTRY_LOCK 0x1
#define EXHANDLE_REFERENCE_SHIFT 0x1b
#define EXHANDLE_REF_ACQUIRE_LOCK 0xffffffff
#define EXHANDLE_REPLENISH_REFS 0x8
#define EXHANDLE_CACHED_REFS 0x1f
#endif
HEADER("Other constants"),
CONSTANT(PAGE_SHIFT),
CONSTANT(KI_EXCEPTION_INTERNAL),
HEADER("CONTEXT Offsets"),
OFFSET(CxContextFlags, CONTEXT, ContextFlags),
OFFSET(CxR0, CONTEXT, R0),
OFFSET(CxR1, CONTEXT, R1),
OFFSET(CxR2, CONTEXT, R2),
OFFSET(CxR3, CONTEXT, R3),
OFFSET(CxR4, CONTEXT, R4),
OFFSET(CxR5, CONTEXT, R5),
OFFSET(CxR6, CONTEXT, R6),
OFFSET(CxR7, CONTEXT, R7),
OFFSET(CxR8, CONTEXT, R8),
OFFSET(CxR9, CONTEXT, R9),
OFFSET(CxR10, CONTEXT, R10),
OFFSET(CxR11, CONTEXT, R11),
OFFSET(CxR12, CONTEXT, R12),
OFFSET(CxSp, CONTEXT, Sp),
OFFSET(CxLr, CONTEXT, Lr),
OFFSET(CxPc, CONTEXT, Pc),
OFFSET(CxCpsr, CONTEXT, Cpsr),
OFFSET(CxFpscr, CONTEXT, Fpscr),
OFFSET(CxQ, CONTEXT, Q),
OFFSET(CxD, CONTEXT, D),
OFFSET(CxS, CONTEXT, S),
OFFSET(CxD8, CONTEXT, D[8]),
OFFSET(CxBvr, CONTEXT, Bvr),
OFFSET(CxBcr, CONTEXT, Bcr),
OFFSET(CxWvr, CONTEXT, Wvr),
OFFSET(CxWcr, CONTEXT, Wcr),
SIZE(CONTEXT_FRAME_LENGTH, CONTEXT),
HEADER("_JUMP_BUFFER offsets"),
OFFSET(JbFrame, _JUMP_BUFFER, Frame),
OFFSET(JbR4, _JUMP_BUFFER, R4),
OFFSET(JbR5, _JUMP_BUFFER, R5),
OFFSET(JbR6, _JUMP_BUFFER, R6),
OFFSET(JbR7, _JUMP_BUFFER, R7),
OFFSET(JbR8, _JUMP_BUFFER, R8),
OFFSET(JbR9, _JUMP_BUFFER, R9),
OFFSET(JbR10, _JUMP_BUFFER, R10),
OFFSET(JbR11, _JUMP_BUFFER, R11),
OFFSET(JbSp, _JUMP_BUFFER, Sp),
OFFSET(JbPc, _JUMP_BUFFER, Pc),
OFFSET(JbFpscr, _JUMP_BUFFER, Fpscr),
OFFSET(JbD, _JUMP_BUFFER, D),
HEADER("DISPATCHER_CONTEXT offsets"),
OFFSET(DcControlPc, DISPATCHER_CONTEXT, ControlPc),
OFFSET(DcImageBase, DISPATCHER_CONTEXT, ImageBase),
OFFSET(DcFunctionEntry, DISPATCHER_CONTEXT, FunctionEntry),
OFFSET(DcEstablisherFrame, DISPATCHER_CONTEXT, EstablisherFrame),
OFFSET(DcTargetPc, DISPATCHER_CONTEXT, TargetPc),
OFFSET(DcContextRecord, DISPATCHER_CONTEXT, ContextRecord),
OFFSET(DcLanguageHandler, DISPATCHER_CONTEXT, LanguageHandler),
OFFSET(DcHandlerData, DISPATCHER_CONTEXT, HandlerData),
OFFSET(DcHistoryTable, DISPATCHER_CONTEXT, HistoryTable),
OFFSET(DcScopeIndex, DISPATCHER_CONTEXT, ScopeIndex),
OFFSET(DcControlPcIsUnwound, DISPATCHER_CONTEXT, ControlPcIsUnwound),
OFFSET(DcNonVolatileRegisters, DISPATCHER_CONTEXT, NonVolatileRegisters),
OFFSET(DcReserved, DISPATCHER_CONTEXT, Reserved),
HEADER("Trap Frame offsets"),
OFFSET(TrArg3, KTRAP_FRAME, Arg3),
OFFSET(TrFaultStatus, KTRAP_FRAME, FaultStatus),
OFFSET(TrFaultAddress, KTRAP_FRAME, FaultAddress),
OFFSET(TrTrapFrame, KTRAP_FRAME, TrapFrame),
OFFSET(TrReserved, KTRAP_FRAME, Reserved),
OFFSET(TrExceptionActive, KTRAP_FRAME, ExceptionActive),
OFFSET(TrPreviousMode, KTRAP_FRAME, PreviousMode),
OFFSET(TrDebugRegistersValid, KTRAP_FRAME, DebugRegistersValid),
OFFSET(TrBvr, KTRAP_FRAME, Bvr),
OFFSET(TrBcr, KTRAP_FRAME, Bcr),
OFFSET(TrWvr, KTRAP_FRAME, Wvr),
OFFSET(TrWcr, KTRAP_FRAME, Wcr),
OFFSET(TrVfpState, KTRAP_FRAME, VfpState),
OFFSET(TrR0, KTRAP_FRAME, R0),
OFFSET(TrR1, KTRAP_FRAME, R1),
OFFSET(TrR2, KTRAP_FRAME, R2),
OFFSET(TrR3, KTRAP_FRAME, R3),
OFFSET(TrR12, KTRAP_FRAME, R12),
OFFSET(TrSp, KTRAP_FRAME, Sp),
OFFSET(TrLr, KTRAP_FRAME, Lr),
OFFSET(TrR11, KTRAP_FRAME, R11),
OFFSET(TrPc, KTRAP_FRAME, Pc),
OFFSET(TrCpsr, KTRAP_FRAME, Cpsr),
SIZE(KTRAP_FRAME_LENGTH, KTRAP_FRAME),
HEADER("KEXCEPTION_FRAME offsets"),
OFFSET(ExParam5, KEXCEPTION_FRAME, Param5),
OFFSET(ExTrapFrame, KEXCEPTION_FRAME, TrapFrame),
OFFSET(ExR4, KEXCEPTION_FRAME, R4),
OFFSET(ExR5, KEXCEPTION_FRAME, R5),
OFFSET(ExR6, KEXCEPTION_FRAME, R6),
OFFSET(ExR7, KEXCEPTION_FRAME, R7),
OFFSET(ExR8, KEXCEPTION_FRAME, R8),
OFFSET(ExR9, KEXCEPTION_FRAME, R9),
OFFSET(ExR10, KEXCEPTION_FRAME, R10),
OFFSET(ExR11, KEXCEPTION_FRAME, R11),
OFFSET(ExReturn, KEXCEPTION_FRAME, Return),
SIZE(KEXCEPTION_FRAME_LENGTH, KEXCEPTION_FRAME),
HEADER("KSPECIAL_REGISTERS offsets"),
OFFSET(KsCp15_Cr13_UsrRW, KSPECIAL_REGISTERS, Cp15_Cr13_UsrRW),
OFFSET(KsCp15_Cr13_UsrRO, KSPECIAL_REGISTERS, Cp15_Cr13_UsrRO),
OFFSET(KsCp15_Cr13_SvcRW, KSPECIAL_REGISTERS, Cp15_Cr13_SvcRW),
OFFSET(KsKernelBvr, KSPECIAL_REGISTERS, KernelBvr),
OFFSET(KsKernelBcr, KSPECIAL_REGISTERS, KernelBcr),
OFFSET(KsKernelWcr, KSPECIAL_REGISTERS, KernelWcr),
OFFSET(KsFpexc, KSPECIAL_REGISTERS, Fpexc),
OFFSET(KsFpinst, KSPECIAL_REGISTERS, Fpinst),
OFFSET(KsFpinst2, KSPECIAL_REGISTERS, Fpinst2),
OFFSET(KsUserSp, KSPECIAL_REGISTERS, UserSp),
OFFSET(KsUserLr, KSPECIAL_REGISTERS, UserLr),
OFFSET(KsAbortSp, KSPECIAL_REGISTERS, AbortSp),
OFFSET(KsAbortLr, KSPECIAL_REGISTERS, AbortLr),
OFFSET(KsAbortSpsr, KSPECIAL_REGISTERS, AbortSpsr),
OFFSET(KsUdfSp, KSPECIAL_REGISTERS, UdfSp),
OFFSET(KsUdfLr, KSPECIAL_REGISTERS, UdfLr),
OFFSET(KsUdfSpsr, KSPECIAL_REGISTERS, UdfSpsr),
OFFSET(KsIrqSp, KSPECIAL_REGISTERS, IrqSp),
OFFSET(KsIrqLr, KSPECIAL_REGISTERS, IrqLr),
OFFSET(KsIrqSpsr, KSPECIAL_REGISTERS, IrqSpsr),
HEADER("KPROCESSOR_STATE offsets"),
OFFSET(PsSpecialRegisters, KPROCESSOR_STATE, SpecialRegisters),
OFFSET(PsUsrRW, KPROCESSOR_STATE, SpecialRegisters.Cp15_Cr13_UsrRW),
OFFSET(PsUsrRO, KPROCESSOR_STATE, SpecialRegisters.Cp15_Cr13_UsrRO),
OFFSET(PsSvcRW, KPROCESSOR_STATE, SpecialRegisters.Cp15_Cr13_SvcRW),
OFFSET(PsArchState, KPROCESSOR_STATE, ArchState),
OFFSET(PsCpuid, KPROCESSOR_STATE, ArchState.Cp15_Cr0_CpuId),
OFFSET(PsControl, KPROCESSOR_STATE, ArchState.Cp15_Cr1_Control),
OFFSET(PsAuxControl, KPROCESSOR_STATE, ArchState.Cp15_Cr1_AuxControl),
OFFSET(PsCpacr, KPROCESSOR_STATE, ArchState.Cp15_Cr1_Cpacr),
OFFSET(PsTtbControl, KPROCESSOR_STATE, ArchState.Cp15_Cr2_TtbControl),
OFFSET(PsTtb0, KPROCESSOR_STATE, ArchState.Cp15_Cr2_Ttb0),
OFFSET(PsTtb1, KPROCESSOR_STATE, ArchState.Cp15_Cr2_Ttb1),
OFFSET(PsDacr, KPROCESSOR_STATE, ArchState.Cp15_Cr3_Dacr),
OFFSET(PsPrimaryMemoryRemap, KPROCESSOR_STATE, ArchState.Cp15_Cr10_PrimaryMemoryRemap),
OFFSET(PsNormalMemoryRemap, KPROCESSOR_STATE, ArchState.Cp15_Cr10_NormalMemoryRemap),
OFFSET(PsVBARns, KPROCESSOR_STATE, ArchState.Cp15_Cr12_VBARns),
OFFSET(PsAsid, KPROCESSOR_STATE, ArchState.Cp15_Cr13_ContextId),
OFFSET(PsContextId, KPROCESSOR_STATE, ArchState.Cp15_Cr13_ContextId),
OFFSET(PsContextFrame, KPROCESSOR_STATE, ContextFrame),
SIZE(ProcessorStateLength, KPROCESSOR_STATE),
HEADER("KARM_ARCH_STATE offsets"),
OFFSET(AaCp15_Cr0_CpuId, KARM_ARCH_STATE, Cp15_Cr0_CpuId),
OFFSET(AaCp15_Cr1_Control, KARM_ARCH_STATE, Cp15_Cr1_Control),
OFFSET(AaCp15_Cr1_AuxControl, KARM_ARCH_STATE, Cp15_Cr1_AuxControl),
OFFSET(AaCp15_Cr1_Cpacr, KARM_ARCH_STATE, Cp15_Cr1_Cpacr),
OFFSET(AaCp15_Cr2_TtbControl, KARM_ARCH_STATE, Cp15_Cr2_TtbControl),
OFFSET(AaCp15_Cr2_Ttb0, KARM_ARCH_STATE, Cp15_Cr2_Ttb0),
OFFSET(AaCp15_Cr2_Ttb1, KARM_ARCH_STATE, Cp15_Cr2_Ttb1),
OFFSET(AaCp15_Cr3_Dacr, KARM_ARCH_STATE, Cp15_Cr3_Dacr),
OFFSET(AaCp15_Cr5_Dfsr, KARM_ARCH_STATE, Cp15_Cr5_Dfsr),
OFFSET(AaCp15_Cr5_Ifsr, KARM_ARCH_STATE, Cp15_Cr5_Ifsr),
OFFSET(AaCp15_Cr6_Dfar, KARM_ARCH_STATE, Cp15_Cr6_Dfar),
OFFSET(AaCp15_Cr6_Ifar, KARM_ARCH_STATE, Cp15_Cr6_Ifar),
OFFSET(AaCp15_Cr9_PmControl, KARM_ARCH_STATE, Cp15_Cr9_PmControl),
OFFSET(AaCp15_Cr9_PmCountEnableSet, KARM_ARCH_STATE, Cp15_Cr9_PmCountEnableSet),
OFFSET(AaCp15_Cr9_PmCycleCounter, KARM_ARCH_STATE, Cp15_Cr9_PmCycleCounter),
OFFSET(AaCp15_Cr9_PmEventCounter, KARM_ARCH_STATE, Cp15_Cr9_PmEventCounter),
OFFSET(AaCp15_Cr9_PmEventType, KARM_ARCH_STATE, Cp15_Cr9_PmEventType),
OFFSET(AaCp15_Cr9_PmInterruptSelect, KARM_ARCH_STATE, Cp15_Cr9_PmInterruptSelect),
OFFSET(AaCp15_Cr9_PmOverflowStatus, KARM_ARCH_STATE, Cp15_Cr9_PmOverflowStatus),
OFFSET(AaCp15_Cr9_PmSelect, KARM_ARCH_STATE, Cp15_Cr9_PmSelect),
OFFSET(AaCp15_Cr9_PmUserEnable, KARM_ARCH_STATE, Cp15_Cr9_PmUserEnable),
OFFSET(AaCp15_Cr10_PrimaryMemoryRemap, KARM_ARCH_STATE, Cp15_Cr10_PrimaryMemoryRemap),
OFFSET(AaCp15_Cr10_NormalMemoryRemap, KARM_ARCH_STATE, Cp15_Cr10_NormalMemoryRemap),
OFFSET(AaCp15_Cr12_VBARns, KARM_ARCH_STATE, Cp15_Cr12_VBARns),
OFFSET(AaCp15_Cr13_ContextId, KARM_ARCH_STATE, Cp15_Cr13_ContextId),
HEADER("KSTART_FRAME offsets"),
OFFSET(SfR0, KSTART_FRAME, R0),
OFFSET(SfR1, KSTART_FRAME, R1),
OFFSET(SfR2, KSTART_FRAME, R2),
OFFSET(SfReturn, KSTART_FRAME, Return),
SIZE(KSTART_FRAME_LENGTH, KSTART_FRAME),
HEADER("KSWITCH_FRAME offsets"),
OFFSET(SwApcBypass, KSWITCH_FRAME, ApcBypass),
OFFSET(SwR11, KSWITCH_FRAME, R11),
OFFSET(SwReturn, KSWITCH_FRAME, Return),
SIZE(KSWITCH_FRAME_LENGTH, KSWITCH_FRAME),
HEADER("MACHINE_FRAME offsets"),
OFFSET(MfSp, MACHINE_FRAME, Sp),
OFFSET(MfPc, MACHINE_FRAME, Pc),
SIZE(MachineFrameLength, MACHINE_FRAME),
HEADER("KARM_VFP_STATE offsets"),
OFFSET(VsLink, KARM_VFP_STATE, Link),
OFFSET(VsFpscr, KARM_VFP_STATE, Fpscr),
OFFSET(VsVfpD, KARM_VFP_STATE, VfpD),
OFFSET(VsVfpD8, KARM_VFP_STATE, VfpD[8]),
SIZE(VFP_STATE_LENGTH, KARM_VFP_STATE),
HEADER("KARM_MINI_STACK offsets"),
OFFSET(MsPc, KARM_MINI_STACK, Pc),
OFFSET(MsCpsr, KARM_MINI_STACK, Cpsr),
OFFSET(MsR4, KARM_MINI_STACK, R4),
OFFSET(MsR5, KARM_MINI_STACK, R5),
OFFSET(MsR6, KARM_MINI_STACK, R6),
OFFSET(MsR7, KARM_MINI_STACK, R7),
OFFSET(MsReserved, KARM_MINI_STACK, Reserved),
SIZE(MiniStackLength, KARM_MINI_STACK),
HEADER("KPCR offsets"),
OFFSET(PcSelf, KIPCR, Self),
OFFSET(PcCurrentPrcb, KIPCR, CurrentPrcb),
OFFSET(PcLockArray, KIPCR, LockArray),
OFFSET(PcTeb, KIPCR, Used_Self),
OFFSET(PcStallScaleFactor, KIPCR, StallScaleFactor),
OFFSET(PcHalReserved, KIPCR, HalReserved),
OFFSET(PcPrcb, KIPCR, Prcb),
OFFSET(PcIdleHalt, KIPCR, Prcb.IdleHalt),
OFFSET(PcCurrentThread, KIPCR, Prcb.CurrentThread),
OFFSET(PcNextThread, KIPCR, Prcb.NextThread),
OFFSET(PcIdleThread, KIPCR, Prcb.IdleThread),
OFFSET(PcNestingLevel, KIPCR, Prcb.NestingLevel),
OFFSET(PcNumber, KIPCR, Prcb.Number),
OFFSET(PcPrcbLock, KIPCR, Prcb.PrcbLock),
OFFSET(PcGroupSetMember, KIPCR, Prcb.GroupSetMember),
OFFSET(PcFeatureBits, KIPCR, Prcb.FeatureBits),
OFFSET(PcDeferredReadyListHead, KIPCR, Prcb.DeferredReadyListHead),
OFFSET(PcSystemCalls, KIPCR, Prcb.KeSystemCalls),
OFFSET(PcSpBase, KIPCR, Prcb.SpBase),
OFFSET(PcDpcRoutineActive, KIPCR, Prcb.DpcRoutineActive),
OFFSET(PcInterruptCount, KIPCR, Prcb.InterruptCount),
OFFSET(PcSkipTick, KIPCR, Prcb.SkipTick),
OFFSET(PcDebuggerSavedIRQL, KIPCR, Prcb.DebuggerSavedIRQL),
OFFSET(PcStartCycles, KIPCR, Prcb.StartCycles),
OFFSET(PcCycleCounterHigh, KIPCR, Prcb.CycleCounterHigh),
SIZE(ProcessorControlRegisterLength, KIPCR),
HEADER("KPRCB offsets"),
OFFSET(PbIdleHalt, KPRCB, IdleHalt),
OFFSET(PbCurrentThread, KPRCB, CurrentThread),
OFFSET(PbNextThread, KPRCB, NextThread),
OFFSET(PbIdleThread, KPRCB, IdleThread),
OFFSET(PbNestingLevel, KPRCB, NestingLevel),
OFFSET(PbNumber, KPRCB, Number),
OFFSET(PbPrcbLock, KPRCB, PrcbLock),
OFFSET(PbPriorityState, KPRCB, PriorityState),
OFFSET(PbProcessorState, KPRCB, ProcessorState),
OFFSET(PbHalReserved, KPRCB, HalReserved),
OFFSET(PbMinorVersion, KPRCB, MinorVersion),
OFFSET(PbMajorVersion, KPRCB, MajorVersion),
OFFSET(PbBuildType, KPRCB, BuildType),
OFFSET(PbCoresPerPhysicalProcessor, KPRCB, CoresPerPhysicalProcessor),
OFFSET(PbLogicalProcessorsPerCore, KPRCB, LogicalProcessorsPerCore),
OFFSET(PbGroup, KPRCB, Group),
OFFSET(PbGroupIndex, KPRCB, GroupIndex),
OFFSET(PbLockQueue, KPRCB, LockQueue),
OFFSET(PbProcessorVendorString, KPRCB, ProcessorVendorString),
OFFSET(PbFeatureBits, KPRCB, FeatureBits),
OFFSET(PbPPLookasideList, KPRCB, PPLookasideList),
OFFSET(PbPacketBarrier, KPRCB, PacketBarrier),
OFFSET(PbDeferredReadyListHead, KPRCB, DeferredReadyListHead),
OFFSET(PbSystemCalls, KPRCB, KeSystemCalls),
OFFSET(PbContextSwitches, KPRCB, KeContextSwitches),
OFFSET(PbFastReadNoWait, KPRCB, CcFastReadNoWait),
OFFSET(PbFastReadWait, KPRCB, CcFastReadWait),
OFFSET(PbFastReadNotPossible, KPRCB, CcFastReadNotPossible),
OFFSET(PbCopyReadNoWait, KPRCB, CcCopyReadNoWait),
OFFSET(PbCopyReadWait, KPRCB, CcCopyReadWait),
OFFSET(PbCopyReadNoWaitMiss, KPRCB, CcCopyReadNoWaitMiss),
OFFSET(PbLookasideIrpFloat, KPRCB, LookasideIrpFloat),
OFFSET(PbReadOperationCount, KPRCB, IoReadOperationCount),
OFFSET(PbWriteOperationCount, KPRCB, IoWriteOperationCount),
OFFSET(PbOtherOperationCount, KPRCB, IoOtherOperationCount),
OFFSET(PbReadTransferCount, KPRCB, IoReadTransferCount),
OFFSET(PbWriteTransferCount, KPRCB, IoWriteTransferCount),
OFFSET(PbOtherTransferCount, KPRCB, IoOtherTransferCount),
OFFSET(PbMailbox, KPRCB, Mailbox),
OFFSET(PbIpiFrozen, KPRCB, IpiFrozen),
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
OFFSET(PbDpcList, KPRCB, DpcData[0].DpcList),
#else
OFFSET(PbDpcListHead, KPRCB, DpcData[0].DpcListHead),
#endif
OFFSET(PbDpcLock, KPRCB, DpcData[0].DpcLock),
OFFSET(PbDpcCount, KPRCB, DpcData[0].DpcCount),
OFFSET(PbDpcStack, KPRCB, DpcStack),
OFFSET(PbSpBase, KPRCB, SpBase),
OFFSET(PbMaximumDpcQueueDepth, KPRCB, MaximumDpcQueueDepth),
OFFSET(PbDpcRequestRate, KPRCB, DpcRequestRate),
OFFSET(PbMinimumDpcRate, KPRCB, MinimumDpcRate),
OFFSET(PbDpcLastCount, KPRCB, DpcLastCount),
OFFSET(PbQuantumEnd, KPRCB, QuantumEnd),
OFFSET(PbDpcRoutineActive, KPRCB, DpcRoutineActive),
OFFSET(PbIdleSchedule, KPRCB, IdleSchedule),
#if (NTDDI_VERSION >= NTDDI_WIN8)
OFFSET(PbDpcRequestSummary, KPRCB, DpcRequestSummary),
OFFSET(PbNormalDpcState, KPRCB, NormalDpcState),
OFFSET(PbDpcGate, KPRCB, DpcGate),
#else
OFFSET(PbDpcSetEventRequest, KPRCB, DpcSetEventRequest),
OFFSET(PbDpcEvent, KPRCB, DpcEvent),
#endif
OFFSET(PbKeSpinLockOrdering, KPRCB, KeSpinLockOrdering),
OFFSET(PbWaitListHead, KPRCB, WaitListHead),
OFFSET(PbDispatcherReadyListHead, KPRCB, DispatcherReadyListHead),
OFFSET(PbInterruptCount, KPRCB, InterruptCount),
OFFSET(PbKernelTime, KPRCB, KernelTime),
OFFSET(PbUserTime, KPRCB, UserTime),
OFFSET(PbDpcTime, KPRCB, DpcTime),
OFFSET(PbInterruptTime, KPRCB, InterruptTime),
OFFSET(PbAdjustDpcThreshold, KPRCB, AdjustDpcThreshold),
OFFSET(PbExceptionDispatchCount, KPRCB, KeExceptionDispatchCount),
OFFSET(PbParentNode, KPRCB, ParentNode),
OFFSET(PbStartCycles, KPRCB, StartCycles),
OFFSET(PbCycleCounterHigh, KPRCB, CycleCounterHigh),
#if (NTDDI_VERSION >= NTDDI_WIN8)
OFFSET(PbEntropyCount, KPRCB, EntropyTimingState.EntropyCount),
OFFSET(PbEntropyBuffer, KPRCB, EntropyTimingState.Buffer),
#endif
OFFSET(PbPageColor, KPRCB, PageColor),
OFFSET(PbNodeColor, KPRCB, NodeColor),
OFFSET(PbNodeShiftedColor, KPRCB, NodeShiftedColor),
OFFSET(PbSecondaryColorMask, KPRCB, SecondaryColorMask),
OFFSET(PbCycleTime, KPRCB, CycleTime),
OFFSET(PbCcFastMdlReadNoWait, KPRCB, CcFastMdlReadNoWait),
OFFSET(PbPowerState, KPRCB, PowerState),
OFFSET(PbAlignmentFixupCount, KPRCB, KeAlignmentFixupCount),
OFFSET(PbSpinLockAcquireCount, KPRCB, SynchCounters.SpinLockAcquireCount),
OFFSET(PbFiqMiniStack, KPRCB, FiqMiniStack),
OFFSET(PbIrqMiniStack, KPRCB, IrqMiniStack),
OFFSET(PbUdfMiniStack, KPRCB, UdfMiniStack),
OFFSET(PbAbtMiniStack, KPRCB, AbtMiniStack),
OFFSET(PbPanicMiniStack, KPRCB, PanicMiniStack),
OFFSET(PbPanicStackBase, KPRCB, PanicStackBase),
OFFSET(PbPPNPagedLookasideList, KPRCB, PPNPagedLookasideList),
OFFSET(PbPPPagedLookasideList, KPRCB, PPPagedLookasideList),
HEADER("UCALLOUT_FRAME offsets (yes, Cu/Ck is confusing...)"),
OFFSET(CkBuffer, UCALLOUT_FRAME, Buffer),
OFFSET(CkLength, UCALLOUT_FRAME, Length),
OFFSET(CkApiNumber, UCALLOUT_FRAME, ApiNumber),
OFFSET(CkPc, UCALLOUT_FRAME, MachineFrame.Pc),
OFFSET(CkSp, UCALLOUT_FRAME, MachineFrame.Sp),
SIZE(CalloutFrameLength, UCALLOUT_FRAME),
HEADER("KCALLOUT_FRAME offsets (yes, Cu/Ck is confusing...)"),
OFFSET(CuTrapFrame, KCALLOUT_FRAME, TrapFrame),
OFFSET(CuOutputBuffer, KCALLOUT_FRAME, OutputBuffer),
OFFSET(CuOutputLength, KCALLOUT_FRAME, OutputLength),
#define TRAP_TYPE_INTERRUPT 0x1
#define TRAP_TYPE_SYSCALL 0x2
#define TRAP_TYPE_UNDEFINED 0x3
#define TRAP_TYPE_DATA_ABORT 0x4
#define TRAP_TYPE_PREFETCH_ABORT 0x5
#define TRAP_TYPE_RESET 0x6
#define TRAP_TYPE_FIQ 0x7
#define THUMB_BREAKPOINT 0xdefe
#define THUMB_DEBUG_SERVICE 0xdefd
#define THUMB_ASSERT 0xdefc
#define THUMB_FASTFAIL 0xdefb
#define THUMB_READ_CYCLES 0xdefa
#define THUMB_DIVIDE_BY_0 0xdef9
#define ARM_EXCEPTION_VECTOR 0xffff0000
#define KI_DPC_INTERRUPT_FLAGS 0x2f
#define KI_EXCEPTION_HARDWARE_ERROR 0x10000005
#define KTRAP_FRAME_ARGUMENTS 0x38
#define ARM_RED_ZONE_BYTES 0x8
CONSTANT(PF_ARM_EXTERNAL_CACHE_AVAILABLE),
#define FAST_FAIL_DEPRECATED_SERVICE_INVOKED 0x1b
#define CP14_DBGBCR_MISMATCH_BIT 0x400000
#define CP14_DBGBCR_ENABLE_BIT 0x1
#define CP15_CPACR_D32DIS 0x80000000
#define CP15_CPACR_ASEDIS 0x40000000
#define CP15_CPACR_VFP_MASK 0xf00000
#define CPVFP_FPEXC_EX 0x80000000
#define CPVFP_FPEXC_EN 0x40000000
#define CPVFP_FPEXC_DEX 0x20000000
#define CPVFP_FPEXC_FP2V 0x10000000
#define CP15_CR0_HARVARD_CACHE 0x1000000
#define CP15_xFSR_FS_HIGH 0x400
#define CP15_xFSR_FS_LOW 0xf
#define CP15_DFSR_WnR 0x800
#define CP15_SCTLR_I 0x1000
#define CP15_SCTLR_C 0x4
#define CP15_SCTLR_M 0x1
#define CP15_SCTLR_Z 0x800
#define CP15_SCTLR_TR 0x10000000
#define CP15_THREAD_RESERVED_MASK 0x3f
#define PsbSelfMap 0x0
#define PsbTiledTtb0 0x4
#define ProcessorStartBlockLength 0x8
#define PppArchitecturalStateVirtualAddress 0x10
#define PppArchitecturalState 0x18
#define PppDcacheFlushSavedRegisters 0x3b8
#define ProcessorParkedPageLength 0x1000
#define TlThread 0x0
#define TlCpuNumber 0x4
#define TlTrapType 0x5
#define TlPadding 0x6
#define TlR0 0x8
#define TlR1 0xc
#define TlR2 0x10
#define TlR3 0x14
#define TlR12 0x18
#define TlSp 0x1c
#define TlLr 0x20
#define TlR11 0x24
#define TlPc 0x28
#define TlCpsr 0x2c
#define DpSp 0x8
#define DpPc 0xc
#define KEXCEPTION_ACTIVE_INTERRUPT_FRAME 0x0
#define KEXCEPTION_ACTIVE_EXCEPTION_FRAME 0x1
#define KEXCEPTION_ACTIVE_SERVICE_FRAME 0x2