| /* | 
 |  * This struct defines the way the registers are stored on the | 
 |  *  stack during a system call. | 
 |  * | 
 |  * Reference: linux/arch/riscv/include/uapi/asm/ptrace.h | 
 |  */ | 
 |  | 
 | #ifndef LINUX_USER_RISCV_TARGET_SYSCALL_H | 
 | #define LINUX_USER_RISCV_TARGET_SYSCALL_H | 
 |  | 
 | struct target_pt_regs { | 
 |     abi_long sepc; | 
 |     abi_long ra; | 
 |     abi_long sp; | 
 |     abi_long gp; | 
 |     abi_long tp; | 
 |     abi_long t0; | 
 |     abi_long t1; | 
 |     abi_long t2; | 
 |     abi_long s0; | 
 |     abi_long s1; | 
 |     abi_long a0; | 
 |     abi_long a1; | 
 |     abi_long a2; | 
 |     abi_long a3; | 
 |     abi_long a4; | 
 |     abi_long a5; | 
 |     abi_long a6; | 
 |     abi_long a7; | 
 |     abi_long s2; | 
 |     abi_long s3; | 
 |     abi_long s4; | 
 |     abi_long s5; | 
 |     abi_long s6; | 
 |     abi_long s7; | 
 |     abi_long s8; | 
 |     abi_long s9; | 
 |     abi_long s10; | 
 |     abi_long s11; | 
 |     abi_long t3; | 
 |     abi_long t4; | 
 |     abi_long t5; | 
 |     abi_long t6; | 
 | }; | 
 |  | 
 | #ifdef TARGET_RISCV32 | 
 | #define UNAME_MACHINE "riscv32" | 
 | #define UNAME_MINIMUM_RELEASE "5.4.0" | 
 | #else | 
 | #define UNAME_MACHINE "riscv64" | 
 | #define UNAME_MINIMUM_RELEASE "4.15.0" | 
 | #endif | 
 |  | 
 | #define TARGET_MCL_CURRENT 1 | 
 | #define TARGET_MCL_FUTURE  2 | 
 | #define TARGET_MCL_ONFAULT 4 | 
 |  | 
 | /* clone(flags, newsp, ptidptr, tls, ctidptr) for RISC-V */ | 
 | /* This comes from linux/kernel/fork.c, CONFIG_CLONE_BACKWARDS */ | 
 | #define TARGET_CLONE_BACKWARDS | 
 |  | 
 | #endif |