xref: /linux/arch/x86/um/shared/sysdep/ptrace_user.h (revision 06d07429858317ded2db7986113a9e0129cd599b)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #include <generated/user_constants.h>
3 
4 #define PT_OFFSET(r) ((r) * sizeof(long))
5 
6 #define PT_SYSCALL_NR(regs) ((regs)[HOST_ORIG_AX])
7 #define PT_SYSCALL_NR_OFFSET PT_OFFSET(HOST_ORIG_AX)
8 
9 #define PT_SYSCALL_RET_OFFSET PT_OFFSET(HOST_AX)
10 
11 #define REGS_IP_INDEX HOST_IP
12 #define REGS_SP_INDEX HOST_SP
13 
14 #ifdef __i386__
15 #define FP_SIZE ((HOST_FPX_SIZE > HOST_FP_SIZE) ? HOST_FPX_SIZE : HOST_FP_SIZE)
16 #else
17 #define FP_SIZE HOST_FP_SIZE
18 #endif
19 
20 /*
21  * glibc before 2.27 does not include PTRACE_SYSEMU_SINGLESTEP in its enum,
22  * ensure we have a definition by (re-)defining it here.
23  */
24 #ifndef PTRACE_SYSEMU_SINGLESTEP
25 #define PTRACE_SYSEMU_SINGLESTEP 32
26 #endif
27