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