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 #ifndef LINUX_USER_RISCV_TARGET_SYSCALL_H 9 #define LINUX_USER_RISCV_TARGET_SYSCALL_H 10 11 struct target_pt_regs { 12 abi_long sepc; 13 abi_long ra; 14 abi_long sp; 15 abi_long gp; 16 abi_long tp; 17 abi_long t0; 18 abi_long t1; 19 abi_long t2; 20 abi_long s0; 21 abi_long s1; 22 abi_long a0; 23 abi_long a1; 24 abi_long a2; 25 abi_long a3; 26 abi_long a4; 27 abi_long a5; 28 abi_long a6; 29 abi_long a7; 30 abi_long s2; 31 abi_long s3; 32 abi_long s4; 33 abi_long s5; 34 abi_long s6; 35 abi_long s7; 36 abi_long s8; 37 abi_long s9; 38 abi_long s10; 39 abi_long s11; 40 abi_long t3; 41 abi_long t4; 42 abi_long t5; 43 abi_long t6; 44 }; 45 46 #ifdef TARGET_RISCV32 47 #define UNAME_MACHINE "riscv32" 48 #define UNAME_MINIMUM_RELEASE "5.4.0" 49 #else 50 #define UNAME_MACHINE "riscv64" 51 #define UNAME_MINIMUM_RELEASE "4.15.0" 52 #endif 53 54 #define TARGET_MINSIGSTKSZ 2048 55 #define TARGET_MCL_CURRENT 1 56 #define TARGET_MCL_FUTURE 2 57 #define TARGET_MCL_ONFAULT 4 58 59 /* clone(flags, newsp, ptidptr, tls, ctidptr) for RISC-V */ 60 /* This comes from linux/kernel/fork.c, CONFIG_CLONE_BACKWARDS */ 61 #define TARGET_CLONE_BACKWARDS 62 63 #endif 64