linux-headers (unknown)

(root)/
include/
asm/
ptrace-abi.h
       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 */