xref: /openbmc/linux/arch/alpha/include/asm/ptrace.h (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
1*b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2024b246eSLinus Torvalds #ifndef _ASMAXP_PTRACE_H
3024b246eSLinus Torvalds #define _ASMAXP_PTRACE_H
4024b246eSLinus Torvalds 
596433f6eSDavid Howells #include <uapi/asm/ptrace.h>
6024b246eSLinus Torvalds 
7024b246eSLinus Torvalds 
8fd341abbSChristoph Hellwig #define arch_has_single_step()		(1)
9024b246eSLinus Torvalds #define user_mode(regs) (((regs)->ps & 8) != 0)
10024b246eSLinus Torvalds #define instruction_pointer(regs) ((regs)->pc)
11024b246eSLinus Torvalds #define profile_pc(regs) instruction_pointer(regs)
121ca97bb5SAl Viro #define current_user_stack_pointer() rdusp()
13024b246eSLinus Torvalds 
14024b246eSLinus Torvalds #define task_pt_regs(task) \
15024b246eSLinus Torvalds   ((struct pt_regs *) (task_stack_page(task) + 2*PAGE_SIZE) - 1)
16024b246eSLinus Torvalds 
17be53db6eSAl Viro #define current_pt_regs() \
18be53db6eSAl Viro   ((struct pt_regs *) ((char *)current_thread_info() + 2*PAGE_SIZE) - 1)
19be53db6eSAl Viro 
20be53db6eSAl Viro #define force_successful_syscall_return() (current_pt_regs()->r0 = 0)
21024b246eSLinus Torvalds 
regs_return_value(struct pt_regs * regs)22a9302e84S蔡正龙 static inline unsigned long regs_return_value(struct pt_regs *regs)
23a9302e84S蔡正龙 {
24a9302e84S蔡正龙 	return regs->r0;
25a9302e84S蔡正龙 }
26a9302e84S蔡正龙 
27024b246eSLinus Torvalds #endif
28