cpp-d1064d
[cross.git] / i686-linux-gnu-4.7 / usr / include / x86_64-linux-gnu / asm / ptrace-abi.h
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 */