Rev 5270 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5270 | serge | 1 | /* |
2 | * Common low level (register) ptrace helpers |
||
3 | * |
||
4 | * Copyright 2004-2011 Analog Devices Inc. |
||
5 | * |
||
6 | * Licensed under the GPL-2 or later. |
||
7 | */ |
||
8 | |||
9 | #ifndef __ASM_GENERIC_PTRACE_H__ |
||
10 | #define __ASM_GENERIC_PTRACE_H__ |
||
11 | |||
12 | #ifndef __ASSEMBLY__ |
||
13 | |||
14 | /* Helpers for working with the instruction pointer */ |
||
15 | #ifndef GET_IP |
||
16 | #define GET_IP(regs) ((regs)->pc) |
||
17 | #endif |
||
18 | #ifndef SET_IP |
||
19 | #define SET_IP(regs, val) (GET_IP(regs) = (val)) |
||
20 | #endif |
||
21 | |||
22 | static inline unsigned long instruction_pointer(struct pt_regs *regs) |
||
23 | { |
||
24 | return GET_IP(regs); |
||
25 | } |
||
26 | static inline void instruction_pointer_set(struct pt_regs *regs, |
||
27 | unsigned long val) |
||
28 | { |
||
29 | SET_IP(regs, val); |
||
30 | } |
||
31 | |||
32 | #ifndef profile_pc |
||
33 | #define profile_pc(regs) instruction_pointer(regs) |
||
34 | #endif |
||
35 | |||
36 | /* Helpers for working with the user stack pointer */ |
||
37 | #ifndef GET_USP |
||
38 | #define GET_USP(regs) ((regs)->usp) |
||
39 | #endif |
||
40 | #ifndef SET_USP |
||
41 | #define SET_USP(regs, val) (GET_USP(regs) = (val)) |
||
42 | #endif |
||
43 | |||
44 | static inline unsigned long user_stack_pointer(struct pt_regs *regs) |
||
45 | { |
||
46 | return GET_USP(regs); |
||
47 | } |
||
48 | static inline void user_stack_pointer_set(struct pt_regs *regs, |
||
49 | unsigned long val) |
||
50 | { |
||
51 | SET_USP(regs, val); |
||
52 | } |
||
53 | |||
54 | /* Helpers for working with the frame pointer */ |
||
55 | #ifndef GET_FP |
||
56 | #define GET_FP(regs) ((regs)->fp) |
||
57 | #endif |
||
58 | #ifndef SET_FP |
||
59 | #define SET_FP(regs, val) (GET_FP(regs) = (val)) |
||
60 | #endif |
||
61 | |||
62 | static inline unsigned long frame_pointer(struct pt_regs *regs) |
||
63 | { |
||
64 | return GET_FP(regs); |
||
65 | } |
||
66 | static inline void frame_pointer_set(struct pt_regs *regs, |
||
67 | unsigned long val) |
||
68 | { |
||
69 | SET_FP(regs, val); |
||
70 | } |
||
71 | |||
72 | #endif /* __ASSEMBLY__ */ |
||
73 | |||
74 | #endif |