1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-30 22:43:12 +03:00
1998-10-09  Ulrich Drepper  <drepper@cygnus.com>

	* posix/ptestcases.h: Fix typo.

1998-10-08  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* posix/regex.c (regcomp): Allocate and prepare a fastmap.
	(regexec): Allocate regs.start and regs.end as one block.

1998-10-08  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/bits/socket.h: Remove comma at end of
	enum decl.

1998-10-08  Philip Blundell  <pb@nexus.co.uk>

	* sysdeps/unix/sysv/linux/arm/profil-counter.h: Move definition of
	sigcontext union to ...
	* sysdeps/unix/sysv/linux/arm/bits/armsigctx.h: ... here.  New
	file.
	* sysdeps/unix/sysv/linux/arm/register-dump.h: Add support for
	version 2.0 kernels.
This commit is contained in:
Ulrich Drepper
1998-10-09 11:22:46 +00:00
parent a5d1d72670
commit 9a29bc3732
13 changed files with 123 additions and 25 deletions

View File

@ -1,3 +1,26 @@
1998-10-09 Ulrich Drepper <drepper@cygnus.com>
* posix/ptestcases.h: Fix typo.
1998-10-08 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* posix/regex.c (regcomp): Allocate and prepare a fastmap.
(regexec): Allocate regs.start and regs.end as one block.
1998-10-08 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
* sysdeps/unix/sysv/linux/bits/socket.h: Remove comma at end of
enum decl.
1998-10-08 Philip Blundell <pb@nexus.co.uk>
* sysdeps/unix/sysv/linux/arm/profil-counter.h: Move definition of
sigcontext union to ...
* sysdeps/unix/sysv/linux/arm/bits/armsigctx.h: ... here. New
file.
* sysdeps/unix/sysv/linux/arm/register-dump.h: Add support for
version 2.0 kernels.
1998-10-08 Ulrich Drepper <drepper@cygnus.com> 1998-10-08 Ulrich Drepper <drepper@cygnus.com>
* malloc/mtrace.c (tr_reallochook): Produce better output for real * malloc/mtrace.c (tr_reallochook): Produce better output for real

View File

@ -3,6 +3,19 @@
* sysdeps/i386/i686/pt-machine.h: Remove unused inline * sysdeps/i386/i686/pt-machine.h: Remove unused inline
definitions. definitions.
* Makefile (libpthread-routines): Add pt-machine.
* pt-machine.c: New file.
* sysdeps/alpha/pt-machine.h: Define PT_EI as extern inline is not
yet defined. Use PT_EI in extern inline definitions.
* sysdeps/arm/pt-machine.h: Likewise.
* sysdeps/i386/pt-machine.h: Likewise.
* sysdeps/i386/i686/pt-machine.h: Likewise.
* sysdeps/m68k/pt-machine.h: Likewise.
* sysdeps/mips/pt-machine.h: Likewise.
* sysdeps/powerpc/pt-machine.h: Likewise.
* sysdeps/sparc/sparc32/pt-machine.h: Likewise.
* sysdeps/sparc/sparc64/pt-machine.h: Likewise.
1998-10-02 Andreas Jaeger <aj@arthur.rhein-neckar.de> 1998-10-02 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* semaphore.h: Include <sys/types.h> so that _pthread_descr * semaphore.h: Include <sys/types.h> so that _pthread_descr

View File

@ -34,7 +34,7 @@ extra-libs-others := $(extra-libs)
libpthread-routines := attr cancel condvar join manager mutex ptfork \ libpthread-routines := attr cancel condvar join manager mutex ptfork \
ptlongjmp pthread signals specific errno lockfile \ ptlongjmp pthread signals specific errno lockfile \
semaphore spinlock wrapsyscall rwlock semaphore spinlock wrapsyscall rwlock pt-machine
vpath %.c Examples vpath %.c Examples
tests = ex1 ex2 ex3 ex4 ex5 ex6 tests = ex1 ex2 ex3 ex4 ex5 ex6

22
linuxthreads/pt-machine.c Normal file
View File

@ -0,0 +1,22 @@
/* "Instantiation of machine-dependent pthreads inline functions.
Copyright (C) 1998 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
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#define PT_EI
#include <pt-machine.h>

View File

@ -19,13 +19,18 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */ Boston, MA 02111-1307, USA. */
#ifndef PT_EI
# define PT_EI extern inline
#endif
#include <asm/pal.h> #include <asm/pal.h>
/* Spinlock implementation; required. */ /* 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__( __asm__ __volatile__(
"/* Inline spinlock test & set */\n" "/* Inline spinlock test & set */\n"
@ -80,9 +85,10 @@ register char *stack_pointer __asm__("$30");
/* Compare-and-swap for semaphores. */ /* Compare-and-swap for semaphores. */
#define HAS_COMPARE_AND_SWAP #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__ ( __asm__ __volatile__ (
"/* Inline compare & swap */\n" "/* Inline compare & swap */\n"

View File

@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions. /* Machine-dependent pthreads configuration and inline functions.
ARM version. 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. This file is part of the GNU C Library.
Contributed by Philip Blundell <philb@gnu.org>. Contributed by Philip Blundell <philb@gnu.org>.
@ -19,13 +19,17 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */ 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 /* 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 machines. Unfortunately we have no way to detect this at compile
time; let's hope nobody tries to use one. */ time; let's hope nobody tries to use one. */
/* Spinlock implementation; required. */ /* Spinlock implementation; required. */
extern inline int PT_EI int
testandset (int *spinlock) testandset (int *spinlock)
{ {
register unsigned int ret; register unsigned int ret;

View File

@ -19,9 +19,13 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */ Boston, MA 02111-1307, USA. */
#ifndef PT_EI
# define PT_EI extern inline
#endif
/* Spinlock implementation; required. */ /* Spinlock implementation; required. */
extern inline int PT_EI int
testandset (int *spinlock) testandset (int *spinlock)
{ {
int ret; int ret;
@ -45,7 +49,7 @@ register char * stack_pointer __asm__ ("%esp");
/* Compare-and-swap for semaphores. It's always available on i686. */ /* Compare-and-swap for semaphores. It's always available on i686. */
#define HAS_COMPARE_AND_SWAP #define HAS_COMPARE_AND_SWAP
extern inline int PT_EI int
__compare_and_swap (long int *p, long int oldval, long int newval) __compare_and_swap (long int *p, long int oldval, long int newval)
{ {
char ret; char ret;

View File

@ -19,9 +19,12 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */ Boston, MA 02111-1307, USA. */
#ifndef PT_EI
# define PT_EI extern inline
#endif
/* Spinlock implementation; required. */ /* Spinlock implementation; required. */
extern inline int PT_EI int
testandset (int *spinlock) testandset (int *spinlock)
{ {
int ret; int ret;
@ -49,7 +52,7 @@ register char * stack_pointer __asm__ ("%esp");
#define HAS_COMPARE_AND_SWAP #define HAS_COMPARE_AND_SWAP
#define TEST_FOR_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) __compare_and_swap (long int *p, long int oldval, long int newval)
{ {
char ret; char ret;
@ -78,7 +81,7 @@ set_eflags (int newflags)
} }
extern inline int PT_EI int
compare_and_swap_is_available (void) compare_and_swap_is_available (void)
{ {
int oldflags = get_eflags (); int oldflags = get_eflags ();

View File

@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions. /* Machine-dependent pthreads configuration and inline functions.
m68k version. 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. This file is part of the GNU C Library.
Contributed by Richard Henderson <rth@tamu.edu>. Contributed by Richard Henderson <rth@tamu.edu>.
@ -19,9 +19,13 @@
not, write to the Free Software Foundation, Inc., not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef PT_EI
# define PT_EI extern inline
#endif
/* Spinlock implementation; required. */ /* Spinlock implementation; required. */
extern inline int PT_EI int
testandset (int *spinlock) testandset (int *spinlock)
{ {
char ret; char ret;
@ -44,7 +48,7 @@ register char * stack_pointer __asm__ ("%sp");
/* Compare-and-swap for semaphores. */ /* Compare-and-swap for semaphores. */
#define HAS_COMPARE_AND_SWAP #define HAS_COMPARE_AND_SWAP
extern inline int PT_EI int
__compare_and_swap (long int *p, long int oldval, long int newval) __compare_and_swap (long int *p, long int oldval, long int newval)
{ {
char ret; char ret;

View File

@ -1,6 +1,6 @@
/* Machine-dependent pthreads configuration and inline functions. /* 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. This file is part of the GNU C Library.
Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>. Contributed by Ralf Baechle <ralf@gnu.ai.mit.edu>.
Based on the Alpha version by Richard Henderson <rth@tamu.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 yet correctly. There is however a better solution for R3000
uniprocessor machines possible. */ uniprocessor machines possible. */
#ifndef PT_EI
# define PT_EI extern inline
#endif
/* Spinlock implementation; required. */ /* 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__( __asm__ __volatile__(
"# Inline spinlock test & set\n\t" "# Inline spinlock test & set\n\t"
@ -61,7 +66,8 @@ register char * stack_pointer __asm__ ("$29");
/* Compare-and-swap for semaphores. */ /* Compare-and-swap for semaphores. */
#define HAS_COMPARE_AND_SWAP #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 ret;

View File

@ -21,6 +21,10 @@
/* These routines are from Appendix G of the 'PowerPC 601 RISC Microprocessor /* These routines are from Appendix G of the 'PowerPC 601 RISC Microprocessor
User's Manual', by IBM and Motorola. */ 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 /* For multiprocessor systems, we want to ensure all memory accesses
are completed before we reset a lock. */ are completed before we reset a lock. */
#if 0 #if 0
@ -42,10 +46,10 @@ register char * stack_pointer __asm__ ("r1");
#if BROKEN_PPC_ASM_CR0 #if BROKEN_PPC_ASM_CR0
static static
#else #else
extern inline PT_EI
#endif #endif
int int
__compare_and_swap (long *p, long oldval, long newval) __compare_and_swap (long int *p, long int oldval, long int newval)
{ {
int ret; int ret;

View File

@ -19,8 +19,13 @@
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */ Boston, MA 02111-1307, USA. */
#ifndef PT_EI
# define PT_EI extern inline
#endif
/* Spinlock implementation; required. */ /* Spinlock implementation; required. */
static inline int testandset(int *spinlock) PT_EI int
testandset (int *spinlock)
{ {
int ret; int ret;

View File

@ -19,9 +19,13 @@
not, write to the Free Software Foundation, Inc., not, write to the Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#ifndef PT_EI
# define PT_EI extern inline
#endif
/* Spinlock implementation; required. */ /* Spinlock implementation; required. */
extern inline int PT_EI int
testandset (int *spinlock) testandset (int *spinlock)
{ {
int ret; int ret;
@ -36,7 +40,7 @@ testandset (int *spinlock)
/* Get some notion of the current stack. Need not be exactly the top /* Get some notion of the current stack. Need not be exactly the top
of the stack, just something somewhere in the current frame. */ of the stack, just something somewhere in the current frame. */
#define CURRENT_STACK_FRAME stack_pointer #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 /* 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. */ /* Compare-and-swap for semaphores. */
#define HAS_COMPARE_AND_SWAP #define HAS_COMPARE_AND_SWAP
extern inline int PT_EI int
__compare_and_swap (long int *p, long int oldval, long int newval) __compare_and_swap (long int *p, long int oldval, long int newval)
{ {
long int readval; long int readval;