ptrace-abi.h (2037B)
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2#ifndef _ASM_X86_PTRACE_ABI_H 3#define _ASM_X86_PTRACE_ABI_H 4 5#ifdef __i386__ 6 7#define EBX 0 8#define ECX 1 9#define EDX 2 10#define ESI 3 11#define EDI 4 12#define EBP 5 13#define EAX 6 14#define DS 7 15#define ES 8 16#define FS 9 17#define GS 10 18#define ORIG_EAX 11 19#define EIP 12 20#define CS 13 21#define EFL 14 22#define UESP 15 23#define SS 16 24#define FRAME_SIZE 17 25 26#else /* __i386__ */ 27 28#if defined(__ASSEMBLY__) || defined(__FRAME_OFFSETS) 29/* 30 * C ABI says these regs are callee-preserved. They aren't saved on kernel entry 31 * unless syscall needs a complete, fully filled "struct pt_regs". 32 */ 33#define R15 0 34#define R14 8 35#define R13 16 36#define R12 24 37#define RBP 32 38#define RBX 40 39/* These regs are callee-clobbered. Always saved on kernel entry. */ 40#define R11 48 41#define R10 56 42#define R9 64 43#define R8 72 44#define RAX 80 45#define RCX 88 46#define RDX 96 47#define RSI 104 48#define RDI 112 49/* 50 * On syscall entry, this is syscall#. On CPU exception, this is error code. 51 * On hw interrupt, it's IRQ number: 52 */ 53#define ORIG_RAX 120 54/* Return frame for iretq */ 55#define RIP 128 56#define CS 136 57#define EFLAGS 144 58#define RSP 152 59#define SS 160 60#endif /* __ASSEMBLY__ */ 61 62/* top of stack page */ 63#define FRAME_SIZE 168 64 65#endif /* !__i386__ */ 66 67/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ 68#define PTRACE_GETREGS 12 69#define PTRACE_SETREGS 13 70#define PTRACE_GETFPREGS 14 71#define PTRACE_SETFPREGS 15 72#define PTRACE_GETFPXREGS 18 73#define PTRACE_SETFPXREGS 19 74 75#define PTRACE_OLDSETOPTIONS 21 76 77/* only useful for access 32bit programs / kernels */ 78#define PTRACE_GET_THREAD_AREA 25 79#define PTRACE_SET_THREAD_AREA 26 80 81#ifdef __x86_64__ 82# define PTRACE_ARCH_PRCTL 30 83#endif 84 85#define PTRACE_SYSEMU 31 86#define PTRACE_SYSEMU_SINGLESTEP 32 87 88#define PTRACE_SINGLEBLOCK 33 /* resume execution until next branch */ 89 90#ifndef __ASSEMBLY__ 91#include <linux/types.h> 92#endif 93 94#endif /* _ASM_X86_PTRACE_ABI_H */