diff options
author | 2012-03-22 01:10:48 +0000 | |
---|---|---|
committer | 2012-03-22 01:10:48 +0000 | |
commit | 3aca685fddf678e14c649b345bb66cd61ec729a0 (patch) | |
tree | 41dbd1410a7c47e9ef5298c80c0e3cc5b55e8d86 /lib/librthread/arch/sparc | |
parent | Move __tfork_thread() from rthreads (libpthread) to libc so that (diff) | |
download | wireguard-openbsd-3aca685fddf678e14c649b345bb66cd61ec729a0.tar.xz wireguard-openbsd-3aca685fddf678e14c649b345bb66cd61ec729a0.zip |
tfork_thread has been moved to libc
Diffstat (limited to 'lib/librthread/arch/sparc')
-rw-r--r-- | lib/librthread/arch/sparc/rfork_thread.S | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/lib/librthread/arch/sparc/rfork_thread.S b/lib/librthread/arch/sparc/rfork_thread.S deleted file mode 100644 index 2feac006077..00000000000 --- a/lib/librthread/arch/sparc/rfork_thread.S +++ /dev/null @@ -1,74 +0,0 @@ -/* $OpenBSD: rfork_thread.S,v 1.3 2012/01/17 02:34:18 guenther Exp $ */ - -/* - * Copyright (c) 2005, Miodrag Vallat - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN - * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include "../../../libc/arch/sparc/SYS.h" - -/* - * int __tfork_thread(const struct __tfork *param, void *stack, void (*func)(void *), void *arg); - */ -ENTRY(__tfork_thread) - mov %o1, %o4 /* save stack */ - - /* - * We can not invoke __tfork as a G2-style system call since we want - * different return paths. - */ - mov SYS___tfork, %g1 - t ST_SYSCALL - bcs 9f - nop - - cmp %o0, 0 - be 1f - nop - - /* - * In parent process: just return. - */ - retl - nop - -1: - /* - * In child process: switch stack, invoke function, then exit. - * Don't forget to allocate room for a window save on the new - * stack! - */ - sub %g0, %g0, %fp - sub %o4, 96, %sp /* stack */ - call %o2 /* func */ - mov %o3, %o0 /* arg */ - - mov SYS___threxit, %g1 - clr %o0 - t ST_SYSCALL /* will not return */ - -9: - /* - * System call failure. - */ - ERROR() |