URL
https://opencores.org/ocsvn/hf-risc/hf-risc/trunk
Subversion Repositories hf-risc
[/] [hf-risc/] [trunk/] [tools/] [riscv-gnu-toolchain-master/] [glibc/] [sysdeps/] [unix/] [sysv/] [linux/] [riscv/] [vfork.S] - Rev 13
Compare with Previous | Blame | View Log
/* Copyright (C) 2005 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/ormodify it under the terms of the GNU Lesser General PublicLicense as published by the Free Software Foundation; eitherversion 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 ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNULesser General Public License for more details.You should have received a copy of the GNU Lesser General PublicLicense along with the GNU C Library; if not, write to the FreeSoftware Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA02111-1307 USA. *//* vfork() is just a special case of clone(). */#include <sys/asm.h>#include <sysdep.h>#define __ASSEMBLY__#include <linux/sched.h>#include <asm/signal.h>#ifndef SAVE_PID#define SAVE_PID#endif#ifndef RESTORE_PID#define RESTORE_PID#endif/* int vfork() */.textLEAF(__vfork)SAVE_PID#if (CLONE_VFORK | CLONE_VM | SIGCHLD) != 0x4111# error#endifli a0, (CLONE_VFORK | CLONE_VM | SIGCHLD)move a1, spli a2, 0li a3, 0li a4, 0/* Do the system call */li a7,__NR_clonescallbltz a0,L(error)RESTORE_PIDret/* Something bad happened -- no child created. */L(error):j __syscall_errorEND(__vfork)libc_hidden_def(__vfork)weak_alias (__vfork, vfork)
