Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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