diff options
Diffstat (limited to 'linuxthreads/sysdeps')
-rw-r--r-- | linuxthreads/sysdeps/alpha/pt-machine.h | 14 | ||||
-rw-r--r-- | linuxthreads/sysdeps/arm/pt-machine.h | 8 | ||||
-rw-r--r-- | linuxthreads/sysdeps/i386/i686/pt-machine.h | 8 | ||||
-rw-r--r-- | linuxthreads/sysdeps/i386/pt-machine.h | 9 | ||||
-rw-r--r-- | linuxthreads/sysdeps/m68k/pt-machine.h | 10 | ||||
-rw-r--r-- | linuxthreads/sysdeps/mips/pt-machine.h | 14 | ||||
-rw-r--r-- | linuxthreads/sysdeps/powerpc/pt-machine.h | 8 | ||||
-rw-r--r-- | linuxthreads/sysdeps/sparc/sparc32/pt-machine.h | 7 | ||||
-rw-r--r-- | linuxthreads/sysdeps/sparc/sparc64/pt-machine.h | 10 |
9 files changed, 64 insertions, 24 deletions
diff --git a/linuxthreads/sysdeps/alpha/pt-machine.h b/linuxthreads/sysdeps/alpha/pt-machine.h index 41b37daf8e..b88629405b 100644 --- a/linuxthreads/sysdeps/alpha/pt-machine.h +++ b/linuxthreads/sysdeps/alpha/pt-machine.h @@ -19,13 +19,18 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifndef PT_EI +# define PT_EI extern inline +#endif + #include <asm/pal.h> /* Spinlock implementation; required. */ -extern inline long testandset(int *spinlock) +PT_EI long int +testandset (int *spinlock) { - long ret, temp; + long int ret, temp; __asm__ __volatile__( "/* Inline spinlock test & set */\n" @@ -80,9 +85,10 @@ register char *stack_pointer __asm__("$30"); /* Compare-and-swap for semaphores. */ #define HAS_COMPARE_AND_SWAP -extern inline int __compare_and_swap(long * p, long oldval, long newval) +PT_EI int +__compare_and_swap (long int *p, long int oldval, long int newval) { - long ret; + long int ret; __asm__ __volatile__ ( "/* Inline compare & swap */\n" diff --git a/linuxthreads/sysdeps/arm/pt-machine.h b/linuxthreads/sysdeps/arm/pt-machine.h index 0b9bc01fc1..d4dc4c4ed9 100644 --- a/linuxthreads/sysdeps/arm/pt-machine.h +++ b/linuxthreads/sysdeps/arm/pt-machine.h @@ -1,6 +1,6 @@ /* Machine-dependent pthreads configuration and inline functions. ARM version. - Copyright (C) 1997 Free Software Foundation, Inc. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Philip Blundell <philb@gnu.org>. @@ -19,13 +19,17 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifndef PT_EI +# define PT_EI extern inline +#endif + /* This will not work on ARM1 or ARM2 because SWP is lacking on those machines. Unfortunately we have no way to detect this at compile time; let's hope nobody tries to use one. */ /* Spinlock implementation; required. */ -extern inline int +PT_EI int testandset (int *spinlock) { register unsigned int ret; diff --git a/linuxthreads/sysdeps/i386/i686/pt-machine.h b/linuxthreads/sysdeps/i386/i686/pt-machine.h index 8c2d794a8c..1b193a0c09 100644 --- a/linuxthreads/sysdeps/i386/i686/pt-machine.h +++ b/linuxthreads/sysdeps/i386/i686/pt-machine.h @@ -19,9 +19,13 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifndef PT_EI +# define PT_EI extern inline +#endif + /* Spinlock implementation; required. */ -extern inline int +PT_EI int testandset (int *spinlock) { int ret; @@ -45,7 +49,7 @@ register char * stack_pointer __asm__ ("%esp"); /* Compare-and-swap for semaphores. It's always available on i686. */ #define HAS_COMPARE_AND_SWAP -extern inline int +PT_EI int __compare_and_swap (long int *p, long int oldval, long int newval) { char ret; diff --git a/linuxthreads/sysdeps/i386/pt-machine.h b/linuxthreads/sysdeps/i386/pt-machine.h index 7ed90b7553..364b77c9eb 100644 --- a/linuxthreads/sysdeps/i386/pt-machine.h +++ b/linuxthreads/sysdeps/i386/pt-machine.h @@ -19,9 +19,12 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifndef PT_EI +# define PT_EI extern inline +#endif /* Spinlock implementation; required. */ -extern inline int +PT_EI int testandset (int *spinlock) { int ret; @@ -49,7 +52,7 @@ register char * stack_pointer __asm__ ("%esp"); #define HAS_COMPARE_AND_SWAP #define TEST_FOR_COMPARE_AND_SWAP -extern inline int +PT_EI int __compare_and_swap (long int *p, long int oldval, long int newval) { char ret; @@ -78,7 +81,7 @@ set_eflags (int newflags) } -extern inline int +PT_EI int compare_and_swap_is_available (void) { int oldflags = get_eflags (); diff --git a/linuxthreads/sysdeps/m68k/pt-machine.h b/linuxthreads/sysdeps/m68k/pt-machine.h index c5c6cabe35..38ea681143 100644 --- a/linuxthreads/sysdeps/m68k/pt-machine.h +++ b/linuxthreads/sysdeps/m68k/pt-machine.h @@ -1,6 +1,6 @@ /* Machine-dependent pthreads configuration and inline functions. m68k version. - Copyright (C) 1996 Free Software Foundation, Inc. + Copyright (C) 1996, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Richard Henderson <rth@tamu.edu>. @@ -19,9 +19,13 @@ not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifndef PT_EI +# define PT_EI extern inline +#endif + /* Spinlock implementation; required. */ -extern inline int +PT_EI int testandset (int *spinlock) { char ret; @@ -44,7 +48,7 @@ register char * stack_pointer __asm__ ("%sp"); /* Compare-and-swap for semaphores. */ #define HAS_COMPARE_AND_SWAP -extern inline int +PT_EI int __compare_and_swap (long int *p, long int oldval, long int newval) { char ret; diff --git a/linuxthreads/sysdeps/mips/pt-machine.h b/linuxthreads/sysdeps/mips/pt-machine.h index d15da7535b..5273923080 100644 --- a/linuxthreads/sysdeps/mips/pt-machine.h +++ b/linuxthreads/sysdeps/mips/pt-machine.h @@ -1,6 +1,6 @@ /* Machine-dependent pthreads configuration and inline functions. - Copyright (C) 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>. Based on the Alpha version by Richard Henderson <rth@tamu.edu>. @@ -26,11 +26,16 @@ yet correctly. There is however a better solution for R3000 uniprocessor machines possible. */ +#ifndef PT_EI +# define PT_EI extern inline +#endif + /* Spinlock implementation; required. */ -extern inline long testandset(int *spinlock) +PT_EI long int +testandset (int *spinlock) { - long ret, temp; + long int ret, temp; __asm__ __volatile__( "# Inline spinlock test & set\n\t" @@ -61,7 +66,8 @@ register char * stack_pointer __asm__ ("$29"); /* Compare-and-swap for semaphores. */ #define HAS_COMPARE_AND_SWAP -extern inline int __compare_and_swap(long * p, long oldval, long newval) +PT_EI int +__compare_and_swap (long int *p, long int oldval, long int newval) { long ret; diff --git a/linuxthreads/sysdeps/powerpc/pt-machine.h b/linuxthreads/sysdeps/powerpc/pt-machine.h index 7829c779e6..578369a7fe 100644 --- a/linuxthreads/sysdeps/powerpc/pt-machine.h +++ b/linuxthreads/sysdeps/powerpc/pt-machine.h @@ -21,6 +21,10 @@ /* These routines are from Appendix G of the 'PowerPC 601 RISC Microprocessor User's Manual', by IBM and Motorola. */ +#ifndef PT_EI +# define PT_EI extern inline +#endif + /* For multiprocessor systems, we want to ensure all memory accesses are completed before we reset a lock. */ #if 0 @@ -42,10 +46,10 @@ register char * stack_pointer __asm__ ("r1"); #if BROKEN_PPC_ASM_CR0 static #else -extern inline +PT_EI #endif int -__compare_and_swap (long *p, long oldval, long newval) +__compare_and_swap (long int *p, long int oldval, long int newval) { int ret; diff --git a/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h b/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h index ea9685b59d..69af8579aa 100644 --- a/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h +++ b/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h @@ -19,8 +19,13 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifndef PT_EI +# define PT_EI extern inline +#endif + /* Spinlock implementation; required. */ -static inline int testandset(int *spinlock) +PT_EI int +testandset (int *spinlock) { int ret; diff --git a/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h b/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h index 768956197d..c4489b3d82 100644 --- a/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h +++ b/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h @@ -19,9 +19,13 @@ not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifndef PT_EI +# define PT_EI extern inline +#endif + /* Spinlock implementation; required. */ -extern inline int +PT_EI int testandset (int *spinlock) { int ret; @@ -36,7 +40,7 @@ testandset (int *spinlock) /* Get some notion of the current stack. Need not be exactly the top of the stack, just something somewhere in the current frame. */ #define CURRENT_STACK_FRAME stack_pointer -register char * stack_pointer __asm__ ("%sp"); +register char *stack_pointer __asm__ ("%sp"); /* Registers %g6 and %g7 are reserved by the ABI for "system use". It @@ -54,7 +58,7 @@ register struct _pthread_descr_struct *__thread_self __asm__("%g6"); /* Compare-and-swap for semaphores. */ #define HAS_COMPARE_AND_SWAP -extern inline int +PT_EI int __compare_and_swap (long int *p, long int oldval, long int newval) { long int readval; |