Home | History | Annotate | Line # | Download | only in sys
fork.S revision 1.3.4.1
      1  1.3.4.1     tron /*	$NetBSD: fork.S,v 1.3.4.1 2004/07/23 13:54:39 tron Exp $	*/
      2      1.1  thorpej 
      3      1.1  thorpej /*
      4      1.1  thorpej  * pid = fork();
      5      1.1  thorpej  *
      6      1.1  thorpej  * r4 == 0 in parent process, 1 in child process.
      7      1.1  thorpej  * r3 == pid of child in parent, pid of parent in child.
      8      1.1  thorpej  */
      9      1.1  thorpej 
     10      1.1  thorpej #include "SYS.h"
     11      1.1  thorpej 
     12      1.3   kleink #ifdef WEAK_ALIAS
     13      1.3   kleink WEAK_ALIAS(fork, _fork)
     14      1.3   kleink #endif
     15      1.3   kleink 
     16      1.3   kleink _SYSCALL(_fork,fork)
     17  1.3.4.1     tron 	addi	%r4,%r4,-1	# from 1 to 0 in child, 0 to -1 in parent
     18  1.3.4.1     tron 	and	%r3,%r3,%r4	# return 0 in child, pid in parent
     19      1.1  thorpej 	blr
     20