1/* vfork for Linux, RISC-V version. 2 Copyright (C) 2005-2018 Free Software Foundation, Inc. 3 4 The GNU C Library is free software; you can redistribute it and/or 5 modify it under the terms of the GNU Lesser General Public 6 License as published by the Free Software Foundation; either 7 version 2.1 of the License, or (at your option) any later version. 8 9 The GNU C Library is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 Lesser General Public License for more details. 13 14 You should have received a copy of the GNU Lesser General Public 15 License along with the GNU C Library. If not, see 16 <http://www.gnu.org/licenses/>. */ 17 18/* vfork() is just a special case of clone(). */ 19 20#include <sys/asm.h> 21#include <sysdep.h> 22#define __ASSEMBLY__ 23#include <linux/sched.h> 24#include <asm/signal.h> 25 26 .text 27LEAF (__vfork) 28 29 li a0, (CLONE_VFORK | CLONE_VM | SIGCHLD) 30 mv a1, sp 31 32 li a7, __NR_clone 33 scall 34 35 bltz a0, 1f 36 ret 37 381: j __syscall_error 39END (__vfork) 40libc_hidden_def(vfork) 41 42weak_alias (__vfork, vfork) 43