linux/arch/x86/include/uapi/asm/ptrace.h
<<
>>
Prefs
   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/*
  45 * C ABI says these regs are callee-preserved. They aren't saved on kernel entry
  46 * unless syscall needs a complete, fully filled "struct pt_regs".
  47 */
  48        unsigned long r15;
  49        unsigned long r14;
  50        unsigned long r13;
  51        unsigned long r12;
  52        unsigned long rbp;
  53        unsigned long rbx;
  54/* These regs are callee-clobbered. Always saved on kernel entry. */
  55        unsigned long r11;
  56        unsigned long r10;
  57        unsigned long r9;
  58        unsigned long r8;
  59        unsigned long rax;
  60        unsigned long rcx;
  61        unsigned long rdx;
  62        unsigned long rsi;
  63        unsigned long rdi;
  64/*
  65 * On syscall entry, this is syscall#. On CPU exception, this is error code.
  66 * On hw interrupt, it's IRQ number:
  67 */
  68        unsigned long orig_rax;
  69/* Return frame for iretq */
  70        unsigned long rip;
  71        unsigned long cs;
  72        unsigned long eflags;
  73        unsigned long rsp;
  74        unsigned long ss;
  75/* top of stack page */
  76};
  77
  78#endif /* __KERNEL__ */
  79#endif /* !__i386__ */
  80
  81
  82
  83#endif /* !__ASSEMBLY__ */
  84
  85#endif /* _UAPI_ASM_X86_PTRACE_H */
  86