diff options
author | Eric Andersen <andersen@codepoet.org> | 2001-06-12 21:45:10 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2001-06-12 21:45:10 +0000 |
commit | 92773db48eb6be7bc3ef12f44e4b163a7f5e0af3 (patch) | |
tree | 7a5097716ad65c0899d917a25379131e26a7e47b /libc/sysdeps/linux/m68k/vfork.c | |
parent | 23f586ed1edb81cea7c976eb1f2354ab24294908 (diff) |
Cleanup the toploevel makefile handing of shared libs. Add weak_alias
define, and set things up so nasty old coff toolchains can now compile
things and should actually work again.
-Erik
Diffstat (limited to 'libc/sysdeps/linux/m68k/vfork.c')
-rw-r--r-- | libc/sysdeps/linux/m68k/vfork.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/m68k/vfork.c b/libc/sysdeps/linux/m68k/vfork.c new file mode 100644 index 000000000..9edcb650d --- /dev/null +++ b/libc/sysdeps/linux/m68k/vfork.c @@ -0,0 +1,25 @@ +/* orginally from include/unistd.h, written by ndf@linux.mit.edu> */ +#include <unistd.h> +#include <sys/types.h> +#include <asm/unistd.h> + +#ifndef __NR_vfork +#define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */ +#endif + +pid_t vfork(void) +{ + pid_t __res; + __asm__ __volatile__ ("movel %1,%%d0;" + "trap #0;" + "movel %%d0,%0" + : "=d" (__res) + : "0" (__NR_vfork) + : "%d0"); + if (__res >= (unsigned long)-4096) { + errno = -__res; + __res = (pid_t)-1; + } + return(__res); +} + |