fork.S revision 1.2 1 1.2 matt /* $NetBSD: fork.S,v 1.2 2014/08/23 02:24:22 matt Exp $ */
2 1.1 ross
3 1.1 ross /*
4 1.1 ross * pid = fork();
5 1.1 ross *
6 1.1 ross * r4 == 0 in parent process, 1 in child process.
7 1.1 ross * r3 == pid of child in parent, pid of parent in child.
8 1.1 ross */
9 1.1 ross
10 1.1 ross #include "SYS.h"
11 1.1 ross
12 1.1 ross _SYSCALL(__fork,fork)
13 1.1 ross addi %r4,%r4,-1 # from 1 to 0 in child, 0 to -1 in parent
14 1.1 ross and %r3,%r3,%r4 # return 0 in child, pid in parent
15 1.1 ross blr
16 1.2 matt END(__fork)
17