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 16struct 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 40struct 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