1*2fe8fb19SBen Gras/* $NetBSD: compat_Ovfork.S,v 1.2 2011/01/15 07:31:13 matt Exp $ */ 2*2fe8fb19SBen Gras 3*2fe8fb19SBen Gras/* 4*2fe8fb19SBen Gras * pid = vfork(); 5*2fe8fb19SBen Gras * 6*2fe8fb19SBen Gras * r4 == 0 in parent process, 1 in child process. 7*2fe8fb19SBen Gras * r3 == pid of child in parent, pid of parent in child. 8*2fe8fb19SBen Gras */ 9*2fe8fb19SBen Gras 10*2fe8fb19SBen Gras#include "SYS.h" 11*2fe8fb19SBen Gras 12*2fe8fb19SBen Gras#if defined(LIBC_SCCS) 13*2fe8fb19SBen Gras__RCSID("$NetBSD: compat_Ovfork.S,v 1.2 2011/01/15 07:31:13 matt Exp $") 14*2fe8fb19SBen Gras#endif 15*2fe8fb19SBen Gras 16*2fe8fb19SBen GrasWARN_REFERENCES(vfork, \ 17*2fe8fb19SBen Gras "warning: reference to compatibility vfork(); include <unistd.h> for correct reference") 18*2fe8fb19SBen Gras 19*2fe8fb19SBen GrasSYSCALL(vfork) 20*2fe8fb19SBen Gras addi %r4,%r4,-1 # from 1 to 0 in child, 0 to -1 in parent 21*2fe8fb19SBen Gras and %r3,%r3,%r4 # return 0 in child, pid in parent 22*2fe8fb19SBen Gras blr 23*2fe8fb19SBen GrasEND(vfork) 24