Subversion Repositories shark

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
422 giacomo 1
#ifndef _I386_PTRACE_H
2
#define _I386_PTRACE_H
3
 
4
#define EBX 0
5
#define ECX 1
6
#define EDX 2
7
#define ESI 3
8
#define EDI 4
9
#define EBP 5
10
#define EAX 6
11
#define DS 7
12
#define ES 8
13
#define FS 9
14
#define GS 10
15
#define ORIG_EAX 11
16
#define EIP 12
17
#define CS  13
18
#define EFL 14
19
#define UESP 15
20
#define SS   16
21
#define FRAME_SIZE 17
22
 
23
/* this struct defines the way the registers are stored on the
24
   stack during a system call. */
25
 
26
struct pt_regs {
27
        long ebx;
28
        long ecx;
29
        long edx;
30
        long esi;
31
        long edi;
32
        long ebp;
33
        long eax;
34
        int  xds;
35
        int  xes;
36
        long orig_eax;
37
        long eip;
38
        int  xcs;
39
        long eflags;
40
        long esp;
41
        int  xss;
42
};
43
 
44
/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */
45
#define PTRACE_GETREGS            12
46
#define PTRACE_SETREGS            13
47
#define PTRACE_GETFPREGS          14
48
#define PTRACE_SETFPREGS          15
49
#define PTRACE_GETFPXREGS         18
50
#define PTRACE_SETFPXREGS         19
51
 
52
#define PTRACE_OLDSETOPTIONS         21
53
 
54
#define PTRACE_GET_THREAD_AREA    25
55
#define PTRACE_SET_THREAD_AREA    26
56
 
57
#ifdef __KERNEL__
58
#define user_mode(regs) ((VM_MASK & (regs)->eflags) || (3 & (regs)->xcs))
59
#define instruction_pointer(regs) ((regs)->eip)
60
#endif
61
 
62
#endif