|
|
1.1 root 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:
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: unsigned short ds, __dsu;
35: unsigned short es, __esu;
36: unsigned short fs, __fsu;
37: unsigned short gs, __gsu;
38: long orig_eax;
39: long eip;
40: unsigned short cs, __csu;
41: long eflags;
42: long esp;
43: unsigned short ss, __ssu;
44: };
45:
46: /* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */
47: #define PTRACE_GETREGS 12
48: #define PTRACE_SETREGS 13
49: #define PTRACE_GETFPREGS 14
50: #define PTRACE_SETFPREGS 15
51:
52: #ifdef __KERNEL__
53: #define user_mode(regs) ((VM_MASK & (regs)->eflags) || (3 & (regs)->cs))
54: #define instruction_pointer(regs) ((regs)->eip)
55: extern void show_regs(struct pt_regs *);
56: struct task_struct;
57: extern void get_pt_regs_for_task(struct pt_regs *, struct task_struct *p);
58: #endif
59:
60: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.