linux/arch/x86/include/uapi/asm/ptrace.h
<<
>>
Prefs
   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
  18struct 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
  44struct 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 */
  87