1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- /*
- * Common low level (register) ptrace helpers
- *
- * Copyright 2004-2011 Analog Devices Inc.
- *
- * Licensed under the GPL-2 or later.
- */
- #ifndef __ASM_GENERIC_PTRACE_H__
- #define __ASM_GENERIC_PTRACE_H__
- #ifndef __ASSEMBLY__
- /* Helpers for working with the instruction pointer */
- #ifndef GET_IP
- #define GET_IP(regs) ((regs)->pc)
- #endif
- #ifndef SET_IP
- #define SET_IP(regs, val) (GET_IP(regs) = (val))
- #endif
- static inline unsigned long instruction_pointer(struct pt_regs *regs)
- {
- return GET_IP(regs);
- }
- static inline void instruction_pointer_set(struct pt_regs *regs,
- unsigned long val)
- {
- SET_IP(regs, val);
- }
- #ifndef profile_pc
- #define profile_pc(regs) instruction_pointer(regs)
- #endif
- /* Helpers for working with the user stack pointer */
- #ifndef GET_USP
- #define GET_USP(regs) ((regs)->usp)
- #endif
- #ifndef SET_USP
- #define SET_USP(regs, val) (GET_USP(regs) = (val))
- #endif
- static inline unsigned long user_stack_pointer(struct pt_regs *regs)
- {
- return GET_USP(regs);
- }
- static inline void user_stack_pointer_set(struct pt_regs *regs,
- unsigned long val)
- {
- SET_USP(regs, val);
- }
- /* Helpers for working with the frame pointer */
- #ifndef GET_FP
- #define GET_FP(regs) ((regs)->fp)
- #endif
- #ifndef SET_FP
- #define SET_FP(regs, val) (GET_FP(regs) = (val))
- #endif
- static inline unsigned long frame_pointer(struct pt_regs *regs)
- {
- return GET_FP(regs);
- }
- static inline void frame_pointer_set(struct pt_regs *regs,
- unsigned long val)
- {
- SET_FP(regs, val);
- }
- #endif /* __ASSEMBLY__ */
- #endif
|