aboutsummaryrefslogtreecommitdiff
path: root/src/libthread/sparc64-ucontext.c
diff options
context:
space:
mode:
authorPetter Rodhelind <petter.rodhelind@gmail.com>2021-02-18 20:21:24 +0100
committerPetter Rodhelind <petter.rodhelind@gmail.com>2021-02-18 20:21:24 +0100
commit181d56ee64da53279bb6ecf49c24ab54cfb7193f (patch)
treefc6c8736bb97790a257c5514998c583ffce7c41c /src/libthread/sparc64-ucontext.c
parent94c521bf102a74aec7e1a5c3a9ef5eaa968d4e14 (diff)
parent90971376a5e8620fc62579aa1b3be26245ec8c06 (diff)
downloadplan9port-master.tar.gz
plan9port-master.tar.bz2
plan9port-master.zip
Merge remote-tracking branch 'upstream/master'HEADmaster
Diffstat (limited to 'src/libthread/sparc64-ucontext.c')
-rw-r--r--src/libthread/sparc64-ucontext.c49
1 files changed, 0 insertions, 49 deletions
diff --git a/src/libthread/sparc64-ucontext.c b/src/libthread/sparc64-ucontext.c
deleted file mode 100644
index e4800c19..00000000
--- a/src/libthread/sparc64-ucontext.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
- Contributed by Jakub Jelinek <jakub@redhat.com>.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#include <ucontext.h>
-
-#define UC_M_PC 40
-#define UC_M_NPC 48
-
-extern int __getcontext (ucontext_t *ucp);
-extern int __setcontext (const ucontext_t *ucp, int restoremask);
-
-int
-swapcontext (ucontext_t *oucp, const ucontext_t *ucp)
-{
- extern void __swapcontext_ret (void);
- /* Save the current machine context to oucp. */
- __getcontext (oucp);
- /* Modify oucp to skip the __setcontext call on reactivation. */
- *(long*)((char*)oucp+UC_M_PC) = (long)__swapcontext_ret;
- *(long*)((char*)oucp+UC_M_NPC) = (long)__swapcontext_ret + 4;
- /* Restore the machine context in ucp. */
- __setcontext (ucp, 1);
- return 0;
-}
-
-asm (" \n\
- .text \n\
- .type __swapcontext_ret, #function \n\
-__swapcontext_ret: \n\
- return %i7 + 8 \n\
- clr %o0 \n\
- .size __swapcontext_ret, .-__swapcontext_ret \n\
- ");