|
|
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: #ifdef __KERNEL__
47: #define user_mode(regs) ((VM_MASK & (regs)->eflags) || (3 & (regs)->cs))
48: #define instruction_pointer(regs) ((regs)->eip)
49: extern void show_regs(struct pt_regs *);
50: #endif
51:
52: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.