root/arch/x86/include/uapi/asm/ptrace.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2 #ifndef _UAPI_ASM_X86_PTRACE_H
   3 #define _UAPI_ASM_X86_PTRACE_H
   4 
   5 #include <linux/compiler.h>     /* For __user */
   6 #include <asm/ptrace-abi.h>
   7 #include <asm/processor-flags.h>
   8 
   9 
  10 #ifndef __ASSEMBLY__
  11 
  12 #ifdef __i386__
  13 /* this struct defines the way the registers are stored on the
  14    stack during a system call. */
  15 
  16 #ifndef __KERNEL__
  17 
  18 struct pt_regs {
  19         long ebx;
  20         long ecx;
  21         long edx;
  22         long esi;
  23         long edi;
  24         long ebp;
  25         long eax;
  26         int  xds;
  27         int  xes;
  28         int  xfs;
  29         int  xgs;
  30         long orig_eax;
  31         long eip;
  32         int  xcs;
  33         long eflags;
  34         long esp;
  35         int  xss;
  36 };
  37 
  38 #endif /* __KERNEL__ */
  39 
  40 #else /* __i386__ */
  41 
  42 #ifndef __KERNEL__
  43 
  44 struct pt_regs {
  45 /*
  46  * C ABI says these regs are callee-preserved. They aren't saved on kernel entry
  47  * unless syscall needs a complete, fully filled "struct pt_regs".
  48  */
  49         unsigned long r15;
  50         unsigned long r14;
  51         unsigned long r13;
  52         unsigned long r12;
  53         unsigned long rbp;
  54         unsigned long rbx;
  55 /* These regs are callee-clobbered. Always saved on kernel entry. */
  56         unsigned long r11;
  57         unsigned long r10;
  58         unsigned long r9;
  59         unsigned long r8;
  60         unsigned long rax;
  61         unsigned long rcx;
  62         unsigned long rdx;
  63         unsigned long rsi;
  64         unsigned long rdi;
  65 /*
  66  * On syscall entry, this is syscall#. On CPU exception, this is error code.
  67  * On hw interrupt, it's IRQ number:
  68  */
  69         unsigned long orig_rax;
  70 /* Return frame for iretq */
  71         unsigned long rip;
  72         unsigned long cs;
  73         unsigned long eflags;
  74         unsigned long rsp;
  75         unsigned long ss;
  76 /* top of stack page */
  77 };
  78 
  79 #endif /* __KERNEL__ */
  80 #endif /* !__i386__ */
  81 
  82 
  83 
  84 #endif /* !__ASSEMBLY__ */
  85 
  86 #endif /* _UAPI_ASM_X86_PTRACE_H */

/* [<][>][^][v][top][bottom][index][help] */