1 #ifndef _ASM_X86_PTRACE_H 2 #define _ASM_X86_PTRACE_H 3 4 /* For */ 5 #include <asm/ptrace-abi.h> 6 #include <asm/processor-flags.h> 7 8 9 #ifndef __ASSEMBLY__ 10 11 #ifdef __i386__ 12 /* this struct defines the way the registers are stored on the 13 stack during a system call. */ 14 15 16 struct pt_regs { 17 long ebx; 18 long ecx; 19 long edx; 20 long esi; 21 long edi; 22 long ebp; 23 long eax; 24 int xds; 25 int xes; 26 int xfs; 27 int xgs; 28 long orig_eax; 29 long eip; 30 int xcs; 31 long eflags; 32 long esp; 33 int xss; 34 }; 35 36 37 #else /* __i386__ */ 38 39 40 struct pt_regs { 41 unsigned long r15; 42 unsigned long r14; 43 unsigned long r13; 44 unsigned long r12; 45 unsigned long rbp; 46 unsigned long rbx; 47 /* arguments: non interrupts/non tracing syscalls only save up to here*/ 48 unsigned long r11; 49 unsigned long r10; 50 unsigned long r9; 51 unsigned long r8; 52 unsigned long rax; 53 unsigned long rcx; 54 unsigned long rdx; 55 unsigned long rsi; 56 unsigned long rdi; 57 unsigned long orig_rax; 58 /* end of arguments */ 59 /* cpu exception frame or undefined */ 60 unsigned long rip; 61 unsigned long cs; 62 unsigned long eflags; 63 unsigned long rsp; 64 unsigned long ss; 65 /* top of stack page */ 66 }; 67 68 #endif /* !__i386__ */ 69 70 71 72 #endif /* !__ASSEMBLY__ */ 73 74 #endif /* _ASM_X86_PTRACE_H */ 75