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

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

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2 #ifndef _ASM_X86_PTRACE_ABI_H
   3 #define _ASM_X86_PTRACE_ABI_H
   4 
   5 #ifdef __i386__
   6 
   7 #define EBX 0
   8 #define ECX 1
   9 #define EDX 2
  10 #define ESI 3
  11 #define EDI 4
  12 #define EBP 5
  13 #define EAX 6
  14 #define DS 7
  15 #define ES 8
  16 #define FS 9
  17 #define GS 10
  18 #define ORIG_EAX 11
  19 #define EIP 12
  20 #define CS  13
  21 #define EFL 14
  22 #define UESP 15
  23 #define SS   16
  24 #define FRAME_SIZE 17
  25 
  26 #else /* __i386__ */
  27 
  28 #if defined(__ASSEMBLY__) || defined(__FRAME_OFFSETS)
  29 /*
  30  * C ABI says these regs are callee-preserved. They aren't saved on kernel entry
  31  * unless syscall needs a complete, fully filled "struct pt_regs".
  32  */
  33 #define R15 0
  34 #define R14 8
  35 #define R13 16
  36 #define R12 24
  37 #define RBP 32
  38 #define RBX 40
  39 /* These regs are callee-clobbered. Always saved on kernel entry. */
  40 #define R11 48
  41 #define R10 56
  42 #define R9 64
  43 #define R8 72
  44 #define RAX 80
  45 #define RCX 88
  46 #define RDX 96
  47 #define RSI 104
  48 #define RDI 112
  49 /*
  50  * On syscall entry, this is syscall#. On CPU exception, this is error code.
  51  * On hw interrupt, it's IRQ number:
  52  */
  53 #define ORIG_RAX 120
  54 /* Return frame for iretq */
  55 #define RIP 128
  56 #define CS 136
  57 #define EFLAGS 144
  58 #define RSP 152
  59 #define SS 160
  60 #endif /* __ASSEMBLY__ */
  61 
  62 /* top of stack page */
  63 #define FRAME_SIZE 168
  64 
  65 #endif /* !__i386__ */
  66 
  67 /* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */
  68 #define PTRACE_GETREGS            12
  69 #define PTRACE_SETREGS            13
  70 #define PTRACE_GETFPREGS          14
  71 #define PTRACE_SETFPREGS          15
  72 #define PTRACE_GETFPXREGS         18
  73 #define PTRACE_SETFPXREGS         19
  74 
  75 #define PTRACE_OLDSETOPTIONS      21
  76 
  77 /* only useful for access 32bit programs / kernels */
  78 #define PTRACE_GET_THREAD_AREA    25
  79 #define PTRACE_SET_THREAD_AREA    26
  80 
  81 #ifdef __x86_64__
  82 # define PTRACE_ARCH_PRCTL        30
  83 #endif
  84 
  85 #define PTRACE_SYSEMU             31
  86 #define PTRACE_SYSEMU_SINGLESTEP  32
  87 
  88 #define PTRACE_SINGLEBLOCK      33      /* resume execution until next branch */
  89 
  90 #ifndef __ASSEMBLY__
  91 #include <linux/types.h>
  92 #endif
  93 
  94 #endif /* _ASM_X86_PTRACE_ABI_H */

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