From 9b5df2295b4a3cfc63a15b6490f2b61dcf7c1be9 Mon Sep 17 00:00:00 2001 From: Thorsten Glaser Date: Sat, 26 Mar 2011 15:11:51 +0000 Subject: cris: add provide arch-specific vfork implementation vfork must be called with nothing at all on the stack, so implementing it via syscall() does not work. Signed-off-by: Thorsten Glaser Signed-off-by: Waldemar Brodkorb Signed-off-by: Mike Frysinger --- libc/sysdeps/linux/cris/vfork.S | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 libc/sysdeps/linux/cris/vfork.S (limited to 'libc/sysdeps/linux/cris/vfork.S') diff --git a/libc/sysdeps/linux/cris/vfork.S b/libc/sysdeps/linux/cris/vfork.S new file mode 100644 index 000000000..ea8a81d82 --- /dev/null +++ b/libc/sysdeps/linux/cris/vfork.S @@ -0,0 +1,30 @@ +/*- + * Copyright (c) 2011 + * Thorsten Glaser + * + * This file is available either under the terms and conditions of + * the MirOS Licence, or the same terms as klibc or uClibc. + */ + +#include "sysdep.h" + + .syntax no_register_prefix + +/* + * vfork is special, but PSEUDO() would probably work were it not broken; + * there must be nothing at all on the stack above the stack frame of the + * enclosing function + */ + +ENTRY(__vfork) + movu.w __NR_vfork,$r9 + break 13 + cmps.w -4096,$r10 + bhs 0f + nop + Ret + nop +PSEUDO_END(__vfork) + +weak_alias(__vfork,vfork) +libc_hidden_weak(vfork) -- cgit v1.2.3