From 004e0b4c592e6f11aaccb0a884c6017494196331 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Thu, 26 May 2011 16:25:39 -0700 Subject: [PATCH] --- yaml --- r: 252047 b: refs/heads/master c: edeafa74e69f275649624484cdd8b551c8839163 h: refs/heads/master i: 252045: db60a2b1c8bfa0ced0d476acc699dd7d078cadb0 252043: 002be0e1d7b2084eabe57fe9d498eb1960fcfa29 252039: 9116d8773665e937ca3f4e357cfcbe3abba93b27 252031: 375fe4123fded2bed42e810f4d4dbff0e2ae2d59 v: v3 --- [refs] | 2 +- trunk/include/asm-generic/ptrace.h | 74 ++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 trunk/include/asm-generic/ptrace.h diff --git a/[refs] b/[refs] index 7b9ee839d857..de73db55925d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 456f998ec817ebfa254464be4f089542fa390645 +refs/heads/master: edeafa74e69f275649624484cdd8b551c8839163 diff --git a/trunk/include/asm-generic/ptrace.h b/trunk/include/asm-generic/ptrace.h new file mode 100644 index 000000000000..82e674f6b337 --- /dev/null +++ b/trunk/include/asm-generic/ptrace.h @@ -0,0 +1,74 @@ +/* + * 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