diff options
author | Palmer Dabbelt <palmer@dabbelt.com> | 2018-01-29 10:27:52 -0800 |
---|---|---|
committer | Palmer Dabbelt <palmer@dabbelt.com> | 2018-01-29 10:27:52 -0800 |
commit | 36960f0c763a904d6d1f028e2c33b7bbe43c2a3a (patch) | |
tree | 39c7b6cf706b27b9cf1939a01b4ac73b6202952a /sysdeps/unix/sysv/linux/riscv/syscall.c | |
parent | d1c09b247130c1aedd11b913f579c7764b1b5ae1 (diff) | |
download | glibc-36960f0c763a904d6d1f028e2c33b7bbe43c2a3a.tar.gz glibc-36960f0c763a904d6d1f028e2c33b7bbe43c2a3a.tar.xz glibc-36960f0c763a904d6d1f028e2c33b7bbe43c2a3a.zip |
RISC-V: Linux Syscall Interface
Contains the Linux system call interface, as well as the definitions of a handful of system calls. 2018-01-29 Palmer Dabbelt <palmer@sifive.com> * sysdeps/riscv/nptl/nptl-sysdep.S: New file. * sysdeps/unix/sysv/linux/riscv/arch-fork.h: Likewise. * sysdeps/unix/sysv/linux/riscv/clone.S: Likewise. * sysdeps/unix/sysv/linux/riscv/profil-counter.h: Likewise. * sysdeps/unix/sysv/linux/riscv/pt-vfork.S: Likewise. * sysdeps/unix/sysv/linux/riscv/syscall.c: Likewise. * sysdeps/unix/sysv/linux/riscv/sysdep.S: Likewise. * sysdeps/unix/sysv/linux/riscv/sysdep.h: Likewise. * sysdeps/unix/sysv/linux/riscv/vfork.S: Likewise.
Diffstat (limited to 'sysdeps/unix/sysv/linux/riscv/syscall.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/riscv/syscall.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/riscv/syscall.c b/sysdeps/unix/sysv/linux/riscv/syscall.c new file mode 100644 index 0000000000..6589dde385 --- /dev/null +++ b/sysdeps/unix/sysv/linux/riscv/syscall.c @@ -0,0 +1,35 @@ +/* system call interface. Linux/RISC-V version. + Copyright (C) 2001-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library. If not, see + <http://www.gnu.org/licenses/>. */ + +#include <sysdep.h> + +long int +syscall (long int syscall_number, long int arg1, long int arg2, long int arg3, + long int arg4, long int arg5, long int arg6, long int arg7) +{ + long int ret; + INTERNAL_SYSCALL_DECL (err); + + ret = INTERNAL_SYSCALL_NCS (syscall_number, err, 7, arg1, arg2, arg3, arg4, + arg5, arg6, arg7); + + if (INTERNAL_SYSCALL_ERROR_P (ret, err)) + return __syscall_error (ret); + + return ret; +} |