Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/x86/include/uapi/asm/ptrace-abi.h
26495 views
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(__ASSEMBLER__) || 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 /* __ASSEMBLER__ */
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 __ASSEMBLER__
91
#include <linux/types.h>
92
#endif
93
94
#endif /* _ASM_X86_PTRACE_ABI_H */
95
96