cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ptrace-abi.h (2037B)


      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 */