diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2012-11-18 12:50:10 -0500 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-12-19 18:07:39 -0500 |
| commit | 1ca97bb541a1f5a735e697a8bba763cde3aab452 (patch) | |
| tree | 548d835c0f13de780678922ba3b3ea4c841e8cd7 /arch/alpha/include/asm | |
| parent | 5208ba24e7826519d310474dedaed2f84b0ab6a0 (diff) | |
new helper: current_user_stack_pointer()
Cross-architecture equivalent of rdusp(); default is
user_stack_pointer(current_pt_regs()) - that works for almost all
platforms that have usp saved in pt_regs. The only exception from
that is ia64 - we want memory stack, not the backing store for
register one.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/alpha/include/asm')
| -rw-r--r-- | arch/alpha/include/asm/ptrace.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/alpha/include/asm/ptrace.h b/arch/alpha/include/asm/ptrace.h index b4c5b2fbb647..fd53c74ac943 100644 --- a/arch/alpha/include/asm/ptrace.h +++ b/arch/alpha/include/asm/ptrace.h | |||
| @@ -72,6 +72,7 @@ struct switch_stack { | |||
| 72 | #define user_mode(regs) (((regs)->ps & 8) != 0) | 72 | #define user_mode(regs) (((regs)->ps & 8) != 0) |
| 73 | #define instruction_pointer(regs) ((regs)->pc) | 73 | #define instruction_pointer(regs) ((regs)->pc) |
| 74 | #define profile_pc(regs) instruction_pointer(regs) | 74 | #define profile_pc(regs) instruction_pointer(regs) |
| 75 | #define current_user_stack_pointer() rdusp() | ||
| 75 | 76 | ||
| 76 | #define task_pt_regs(task) \ | 77 | #define task_pt_regs(task) \ |
| 77 | ((struct pt_regs *) (task_stack_page(task) + 2*PAGE_SIZE) - 1) | 78 | ((struct pt_regs *) (task_stack_page(task) + 2*PAGE_SIZE) - 1) |
