summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/cris/fork.c
blob: dc9c8867f80580ce1600201f18035a3c47abcd2a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/*
 * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
 *
 * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
 */

#include "sysdep.h"

#define __NR___libc_fork __NR_fork
SYSCALL__ (__libc_fork, 0)
	/* R1 is now 0 for the parent and 1 for the child.  Decrement it to
	   make it -1 (all bits set) for the parent, and 0 (no bits set)
	   for the child.  Then AND it with R0, so the parent gets
	   R0&-1==R0, and the child gets R0&0==0.  */
     /* i dunno what the blurb above is useful for. we just return. */
__asm__("ret\n\tnop");
libc_hidden_proto(fork)
weak_alias(__libc_fork,fork)
libc_hidden_def(fork)