1 /* 2 * This struct defines the way the registers are stored on the 3 * stack during a system call. 4 * 5 * Reference: linux/arch/riscv/include/uapi/asm/ptrace.h 6 */ 7 8 struct target_pt_regs { 9 abi_long sepc; 10 abi_long ra; 11 abi_long sp; 12 abi_long gp; 13 abi_long tp; 14 abi_long t0; 15 abi_long t1; 16 abi_long t2; 17 abi_long s0; 18 abi_long s1; 19 abi_long a0; 20 abi_long a1; 21 abi_long a2; 22 abi_long a3; 23 abi_long a4; 24 abi_long a5; 25 abi_long a6; 26 abi_long a7; 27 abi_long s2; 28 abi_long s3; 29 abi_long s4; 30 abi_long s5; 31 abi_long s6; 32 abi_long s7; 33 abi_long s8; 34 abi_long s9; 35 abi_long s10; 36 abi_long s11; 37 abi_long t3; 38 abi_long t4; 39 abi_long t5; 40 abi_long t6; 41 }; 42 43 #ifdef TARGET_RISCV32 44 #define UNAME_MACHINE "riscv32" 45 #else 46 #define UNAME_MACHINE "riscv64" 47 #endif 48 #define UNAME_MINIMUM_RELEASE "4.15.0" 49 50 #define TARGET_MINSIGSTKSZ 2048 51 #define TARGET_MLOCKALL_MCL_CURRENT 1 52 #define TARGET_MLOCKALL_MCL_FUTURE 2 53 54 /* clone(flags, newsp, ptidptr, tls, ctidptr) for RISC-V */ 55 /* This comes from linux/kernel/fork.c, CONFIG_CLONE_BACKWARDS */ 56 #define TARGET_CLONE_BACKWARDS 57