* sysdeps/i386/pt-machine.h: Add testandset and __compare_and_swap

prototpyes. 
* sysdeps/alpha/pt-machine.h: Likewise. 
* sysdeps/arm/pt-machine.h: Likewise. 
* sysdeps/cris/pt-machine.h: Likewise. 
* sysdeps/hppa/pt-machine.h: Likewise. 
* sysdeps/i386/i686/pt-machine.h: Likewise. 
* sysdeps/ia64/pt-machine.h: Likewise. 
* sysdeps/m68k/pt-machine.h: Likewise. 
* sysdeps/mips/pt-machine.h: Likewise. 
* sysdeps/powerpc/pt-machine.h: Likewise. 
* sysdeps/s390/s390-32/pt-machine.h: Likewise. 
* sysdeps/s390/s390-64/pt-machine.h: Likewise. 
* sysdeps/sh/pt-machine.h: Likewise. 
* sysdeps/sparc/sparc32/pt-machine.h: Likewise. 
* sysdeps/sparc/sparc64/pt-machine.h: Likewise. 
* sysdeps/x86_64/pt-machine.h: Likewise.
	* internals.h: Move testandset and __compare_and_swap prototypes
	to pt-machine.h.
2002-03-17  Andreas Jaeger  <aj@suse.de>

	* sysdeps/i386/pt-machine.h: Add testandset and __compare_and_swap
	prototpyes.
	* sysdeps/alpha/pt-machine.h: Likewise.
	* sysdeps/arm/pt-machine.h: Likewise.
	* sysdeps/cris/pt-machine.h: Likewise.
	* sysdeps/hppa/pt-machine.h: Likewise.
	* sysdeps/i386/i686/pt-machine.h: Likewise.
	* sysdeps/ia64/pt-machine.h: Likewise.
	* sysdeps/m68k/pt-machine.h: Likewise.
	* sysdeps/mips/pt-machine.h: Likewise.
	* sysdeps/powerpc/pt-machine.h: Likewise.
	* sysdeps/s390/s390-32/pt-machine.h: Likewise.
	* sysdeps/s390/s390-64/pt-machine.h: Likewise.
	* sysdeps/sh/pt-machine.h: Likewise.
	* sysdeps/sparc/sparc32/pt-machine.h: Likewise.
	* sysdeps/sparc/sparc64/pt-machine.h: Likewise.
	* sysdeps/x86_64/pt-machine.h: Likewise.

	* internals.h: Move testandset and __compare_and_swap prototypes
	to pt-machine.h.
This commit is contained in:
Andreas Jaeger 2002-03-17 12:10:08 +00:00
parent 7f0244deed
commit f68137c94b
18 changed files with 81 additions and 18 deletions

View File

@ -1,3 +1,26 @@
2002-03-17 Andreas Jaeger <aj@suse.de>
* sysdeps/i386/pt-machine.h: Add testandset and __compare_and_swap
prototpyes.
* sysdeps/alpha/pt-machine.h: Likewise.
* sysdeps/arm/pt-machine.h: Likewise.
* sysdeps/cris/pt-machine.h: Likewise.
* sysdeps/hppa/pt-machine.h: Likewise.
* sysdeps/i386/i686/pt-machine.h: Likewise.
* sysdeps/ia64/pt-machine.h: Likewise.
* sysdeps/m68k/pt-machine.h: Likewise.
* sysdeps/mips/pt-machine.h: Likewise.
* sysdeps/powerpc/pt-machine.h: Likewise.
* sysdeps/s390/s390-32/pt-machine.h: Likewise.
* sysdeps/s390/s390-64/pt-machine.h: Likewise.
* sysdeps/sh/pt-machine.h: Likewise.
* sysdeps/sparc/sparc32/pt-machine.h: Likewise.
* sysdeps/sparc/sparc64/pt-machine.h: Likewise.
* sysdeps/x86_64/pt-machine.h: Likewise.
* internals.h: Move testandset and __compare_and_swap prototypes
to pt-machine.h.
2002-03-03 Andreas Jaeger <aj@suse.de>
* errno.c: Include resolv.h to avoid warning.

View File

@ -26,9 +26,6 @@
#include <tls.h>
#include "descr.h"
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
#include "semaphore.h"
#ifndef THREAD_GETMEM

View File

@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions.
Alpha version.
Copyright (C) 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 1998, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>.
@ -25,6 +25,8 @@
#include <asm/pal.h>
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
/* Get some notion of the current stack. Need not be exactly the top
of the stack, just something somewhere in the current frame. */

View File

@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions.
ARM version.
Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Philip Blundell <philb@gnu.org>.
@ -19,10 +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
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
/* 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

View File

@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions.
CRIS version.
Copyright (C) 2001 Free Software Foundation, Inc.
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -22,6 +22,9 @@
# define PT_EI extern inline
#endif
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
PT_EI long int
testandset (int *spinlock)
{

View File

@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions.
hppa version.
Copyright (C) 2000 Free Software Foundation, Inc.
Copyright (C) 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>.
@ -25,6 +25,9 @@
# define PT_EI extern inline
#endif
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
/* 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

View File

@ -27,6 +27,9 @@
#endif
#include "kernel-features.h"
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
/* 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 __builtin_frame_address (0)

View File

@ -26,6 +26,9 @@
# define PT_EI extern inline
#endif
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
/* 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 __builtin_frame_address (0)

View File

@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions.
IA-64 version.
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
Copyright (C) 1999, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -22,6 +22,9 @@
# define PT_EI extern inline
#endif
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
/* Make sure gcc doesn't try to be clever and move things around on
us. We need to use _exactly_ the address the user gave us, not some
alias that contains the same information. */

View File

@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions.
m68k version.
Copyright (C) 1996, 1998, 2000 Free Software Foundation, Inc.
Copyright (C) 1996, 1998, 2000, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>.
@ -23,6 +23,8 @@
# define PT_EI extern inline
#endif
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
/* Spinlock implementation; required. */
PT_EI long int

View File

@ -27,6 +27,9 @@
# define PT_EI extern inline
#endif
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
/* Memory barrier. */
#define MEMORY_BARRIER() __asm__ ("" : : : "memory")

View File

@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions.
powerpc version.
Copyright (C) 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -25,6 +25,9 @@
# define PT_EI extern inline
#endif
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
/* For multiprocessor systems, we want to ensure all memory accesses
are completed before we reset a lock. On other systems, we still
need to make sure that the compiler has flushed everything to memory. */
@ -65,7 +68,7 @@ __compare_and_swap (long int *p, long int oldval, long int newval)
}
PT_EI int
__compare_and_swap_with_release_semantics (long int *p,
__compare_and_swap_with_release_semantics (long int *p,
long int oldval, long int newval)
{
int ret;

View File

@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions.
S390 version.
Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@ -23,6 +23,9 @@
# define PT_EI extern inline
#endif
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
/* For multiprocessor systems, we want to ensure all memory accesses
are completed before we reset a lock. On other systems, we still
need to make sure that the compiler has flushed everything to memory. */
@ -98,4 +101,3 @@ __compare_and_swap(long int *p, long int oldval, long int newval)
: "cc", "0", "1" );
return retval == 0;
}

View File

@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions.
64 bit S/390 version.
Copyright (C) 2001 Free Software Foundation, Inc.
Copyright (C) 2001, 2002 Free Software Foundation, Inc.
Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
This file is part of the GNU C Library.
@ -23,6 +23,9 @@
# define PT_EI extern inline
#endif
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
/* For multiprocessor systems, we want to ensure all memory accesses
are completed before we reset a lock. On other systems, we still
need to make sure that the compiler has flushed everything to memory. */
@ -103,4 +106,3 @@ __compare_and_swap(long int *p, long int oldval, long int newval)
: "cc", "0");
return retval == 0;
}

View File

@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions.
SuperH version.
Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Niibe Yutaka <gniibe@m17n.org>.
@ -23,6 +23,9 @@
# define PT_EI extern inline
#endif
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
/* Spinlock implementation; required. */
PT_EI long int
testandset (int *spinlock)

View File

@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions.
sparc version.
Copyright (C) 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>.
@ -23,6 +23,9 @@
# define PT_EI extern inline
#endif
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
/* Spinlock implementation; required. */
PT_EI long int
testandset (int *spinlock)

View File

@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions.
Sparc v9 version.
Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>.
@ -23,6 +23,8 @@
# define PT_EI extern inline
#endif
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
/* Spinlock implementation; required. */
PT_EI long int

View File

@ -27,6 +27,9 @@
# define PT_EI extern inline
#endif
extern long int testandset (int *spinlock);
extern int __compare_and_swap (long int *p, long int oldval, long int newval);
/* 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