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 (1695B)


      1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
      2#ifndef _UAPI_ASMAXP_PTRACE_H
      3#define _UAPI_ASMAXP_PTRACE_H
      4
      5
      6/*
      7 * This struct defines the way the registers are stored on the
      8 * kernel stack during a system call or other kernel entry
      9 *
     10 * NOTE! I want to minimize the overhead of system calls, so this
     11 * struct has as little information as possible. It does not have
     12 *
     13 *  - floating point regs: the kernel doesn't change those
     14 *  - r9-15: saved by the C compiler
     15 *
     16 * This makes "fork()" and "exec()" a bit more complex, but should
     17 * give us low system call latency.
     18 */
     19
     20struct pt_regs {
     21	unsigned long r0;
     22	unsigned long r1;
     23	unsigned long r2;
     24	unsigned long r3;
     25	unsigned long r4;
     26	unsigned long r5;
     27	unsigned long r6;
     28	unsigned long r7;
     29	unsigned long r8;
     30	unsigned long r19;
     31	unsigned long r20;
     32	unsigned long r21;
     33	unsigned long r22;
     34	unsigned long r23;
     35	unsigned long r24;
     36	unsigned long r25;
     37	unsigned long r26;
     38	unsigned long r27;
     39	unsigned long r28;
     40	unsigned long hae;
     41/* JRP - These are the values provided to a0-a2 by PALcode */
     42	unsigned long trap_a0;
     43	unsigned long trap_a1;
     44	unsigned long trap_a2;
     45/* These are saved by PAL-code: */
     46	unsigned long ps;
     47	unsigned long pc;
     48	unsigned long gp;
     49	unsigned long r16;
     50	unsigned long r17;
     51	unsigned long r18;
     52};
     53
     54/*
     55 * This is the extended stack used by signal handlers and the context
     56 * switcher: it's pushed after the normal "struct pt_regs".
     57 */
     58struct switch_stack {
     59	unsigned long r9;
     60	unsigned long r10;
     61	unsigned long r11;
     62	unsigned long r12;
     63	unsigned long r13;
     64	unsigned long r14;
     65	unsigned long r15;
     66	unsigned long r26;
     67	unsigned long fp[32];	/* fp[31] is fpcr */
     68};
     69
     70
     71#endif /* _UAPI_ASMAXP_PTRACE_H */