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.h (1630B)


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