1 1.6 matt /* $NetBSD: fork.S,v 1.6 2011/01/15 07:31:13 matt 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.5 nathanw _SYSCALL(__fork,fork) 13 1.4 matt addi %r4,%r4,-1 # from 1 to 0 in child, 0 to -1 in parent 14 1.4 matt and %r3,%r3,%r4 # return 0 in child, pid in parent 15 1.1 thorpej blr 16 1.6 matt END(__fork) 17