f539cf4facb6cce976de081ea77d611c72608fcd
1 #ifndef __NTOSKRNL_INCLUDE_INTERNAL_ARM_KE_H
2 #define __NTOSKRNL_INCLUDE_INTERNAL_ARM_KE_H
10 #define IMAGE_FILE_MACHINE_ARCHITECTURE IMAGE_FILE_MACHINE_ARM
13 // BKPT is 4 bytes long
15 #define KD_BREAKPOINT_TYPE ULONG
16 #define KD_BREAKPOINT_SIZE sizeof(ULONG)
17 //#define KD_BREAKPOINT_VALUE
20 // Macros for getting and setting special purpose registers in portable code
22 #define KeGetContextPc(Context) \
25 #define KeSetContextPc(Context, ProgramCounter) \
26 ((Context)->Pc = (ProgramCounter))
28 #define KeGetTrapFramePc(TrapFrame) \
31 #define KeGetContextReturnRegister(Context) \
34 #define KeSetContextReturnRegister(Context, ReturnValue) \
35 ((Context)->R0 = (ReturnValue))
38 // Returns the Interrupt State from a Trap Frame.
39 // ON = TRUE, OFF = FALSE
41 //#define KeGetTrapFrameInterruptState(TrapFrame) \
44 // Invalidates the TLB entry for a specified address
48 KeInvalidateTlbEntry(IN PVOID Address
)
50 /* Invalidate the TLB entry for this address */
51 KeArmInvalidateTlbEntry(Address
);
79 #define KiSystemStartupReal KiSystemStartup
81 #define KiGetPreviousMode(tf) \
82 ((tf->Spsr & CPSR_MODES) == CPSR_USER_MODE) ? UserMode: KernelMode