1 #ifndef _UAPI_ASM_X86_PTRACE_H 2 #define _UAPI_ASM_X86_PTRACE_H 3 4 #include <linux/compiler.h> /* For __user */ 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 #ifndef __KERNEL__ 16 17 struct pt_regs { 18 long ebx; 19 long ecx; 20 long edx; 21 long esi; 22 long edi; 23 long ebp; 24 long eax; 25 int xds; 26 int xes; 27 int xfs; 28 int xgs; 29 long orig_eax; 30 long eip; 31 int xcs; 32 long eflags; 33 long esp; 34 int xss; 35 }; 36 37 #endif /* __KERNEL__ */ 38 39 #else /* __i386__ */ 40 41 #ifndef __KERNEL__ 42 43 struct pt_regs { 44 unsigned long r15; 45 unsigned long r14; 46 unsigned long r13; 47 unsigned long r12; 48 unsigned long rbp; 49 unsigned long rbx; 50 /* arguments: non interrupts/non tracing syscalls only save up to here*/ 51 unsigned long r11; 52 unsigned long r10; 53 unsigned long r9; 54 unsigned long r8; 55 unsigned long rax; 56 unsigned long rcx; 57 unsigned long rdx; 58 unsigned long rsi; 59 unsigned long rdi; 60 unsigned long orig_rax; 61 /* end of arguments */ 62 /* cpu exception frame or undefined */ 63 unsigned long rip; 64 unsigned long cs; 65 unsigned long eflags; 66 unsigned long rsp; 67 unsigned long ss; 68 /* top of stack page */ 69 }; 70 71 #endif /* __KERNEL__ */ 72 #endif /* !__i386__ */ 73 74 75 76 #endif /* !__ASSEMBLY__ */ 77 78 #endif /* _UAPI_ASM_X86_PTRACE_H */ 79