1c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifndef _ASM_X86_PTRACE_ABI_H
2c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define _ASM_X86_PTRACE_ABI_H
3c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
4c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifdef __i386__
5c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
6c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define EBX 0
7c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define ECX 1
8c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define EDX 2
9c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define ESI 3
10c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define EDI 4
11c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define EBP 5
12c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define EAX 6
13c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define DS 7
14c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define ES 8
15c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define FS 9
16c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define GS 10
17c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define ORIG_EAX 11
18c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define EIP 12
19c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define CS  13
20c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define EFL 14
21c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define UESP 15
22c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define SS   16
23c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define FRAME_SIZE 17
24c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
25c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#else /* __i386__ */
26c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
27c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#if defined(__ASSEMBLY__) || defined(__FRAME_OFFSETS)
28c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define R15 0
29c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define R14 8
30c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define R13 16
31c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define R12 24
32c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RBP 32
33c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RBX 40
34c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* arguments: interrupts/non tracing syscalls only save upto here*/
35c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define R11 48
36c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define R10 56
37c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define R9 64
38c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define R8 72
39c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RAX 80
40c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RCX 88
41c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RDX 96
42c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RSI 104
43c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RDI 112
44c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define ORIG_RAX 120       /* = ERROR */
45c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* end of arguments */
46c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* cpu exception frame or undefined in case of fast syscall. */
47c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RIP 128
48c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define CS 136
49c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define EFLAGS 144
50c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define RSP 152
51c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define SS 160
52c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define ARGOFFSET R11
53c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif /* __ASSEMBLY__ */
54c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
55c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* top of stack page */
56c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define FRAME_SIZE 168
57c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
58c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif /* !__i386__ */
59c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
60c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */
61c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define PTRACE_GETREGS            12
62c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define PTRACE_SETREGS            13
63c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define PTRACE_GETFPREGS          14
64c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define PTRACE_SETFPREGS          15
65c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define PTRACE_GETFPXREGS         18
66c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define PTRACE_SETFPXREGS         19
67c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
68c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define PTRACE_OLDSETOPTIONS      21
69c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
70c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru/* only useful for access 32bit programs / kernels */
71c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define PTRACE_GET_THREAD_AREA    25
72c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#define PTRACE_SET_THREAD_AREA    26
73c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
74c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#ifdef __x86_64__
75c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru# define PTRACE_ARCH_PRCTL	  30
76c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#else
77c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru# define PTRACE_SYSEMU		  31
78c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru# define PTRACE_SYSEMU_SINGLESTEP 32
79c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif
80c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru
81c559cd81139f97cecad1ad91a0b2e25a5936d53Jean-Baptiste Queru#endif
82