/* * 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_MINSIGSTKSZ 2048 #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