2018-03-02 15:31:11 +03:00
|
|
|
/*
|
|
|
|
* 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
|
|
|
|
*/
|
|
|
|
|
2019-06-04 21:16:18 +03:00
|
|
|
#ifndef LINUX_USER_RISCV_TARGET_SYSCALL_H
|
|
|
|
#define LINUX_USER_RISCV_TARGET_SYSCALL_H
|
|
|
|
|
2018-03-02 15:31:11 +03:00
|
|
|
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"
|
2021-12-16 10:31:11 +03:00
|
|
|
#define UNAME_MINIMUM_RELEASE "5.4.0"
|
2018-03-02 15:31:11 +03:00
|
|
|
#else
|
|
|
|
#define UNAME_MACHINE "riscv64"
|
2018-04-25 13:02:18 +03:00
|
|
|
#define UNAME_MINIMUM_RELEASE "4.15.0"
|
2021-12-16 10:31:11 +03:00
|
|
|
#endif
|
2018-03-02 15:31:11 +03:00
|
|
|
|
2020-08-11 19:45:51 +03:00
|
|
|
#define TARGET_MCL_CURRENT 1
|
|
|
|
#define TARGET_MCL_FUTURE 2
|
|
|
|
#define TARGET_MCL_ONFAULT 4
|
2018-03-02 15:31:11 +03:00
|
|
|
|
|
|
|
/* clone(flags, newsp, ptidptr, tls, ctidptr) for RISC-V */
|
|
|
|
/* This comes from linux/kernel/fork.c, CONFIG_CLONE_BACKWARDS */
|
|
|
|
#define TARGET_CLONE_BACKWARDS
|
2019-06-04 21:16:18 +03:00
|
|
|
|
|
|
|
#endif
|