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