|
|
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.