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 17struct 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 43struct 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