Commit 09e361bb by Jakub Jelinek Committed by Jakub Jelinek

gthr-dce.h: Uglify function parameter and local variable names.

	* gthr-dce.h: Uglify function parameter and local variable names.
	* gthr-gnat.h: Likewise.
	* gthr-mipssde.h: Likewise.
	* gthr-nks.h: Likewise.
	* gthr-posix95.h: Likewise.
	* gthr-posix.h: Likewise.
	* gthr-rtems.h: Likewise.
	* gthr-single.h: Likewise.
	* gthr-solaris.h: Likewise.
	* gthr-tpf.h: Likewise.
	* gthr-vxworks.h: Likewise.
	* gthr-win32.h: Likewise.

From-SVN: r144201
parent 70f5fc7c
2009-02-16 Jakub Jelinek <jakub@redhat.com>
* gthr-dce.h: Uglify function parameter and local variable names.
* gthr-gnat.h: Likewise.
* gthr-mipssde.h: Likewise.
* gthr-nks.h: Likewise.
* gthr-posix95.h: Likewise.
* gthr-posix.h: Likewise.
* gthr-rtems.h: Likewise.
* gthr-single.h: Likewise.
* gthr-solaris.h: Likewise.
* gthr-tpf.h: Likewise.
* gthr-vxworks.h: Likewise.
* gthr-win32.h: Likewise.
2009-02-15 H.J. Lu <hongjiu.lu@intel.com> 2009-02-15 H.J. Lu <hongjiu.lu@intel.com>
PR target/39196 PR target/39196
......
/* Threads compatibility routines for libgcc2 and libobjc. */ /* Threads compatibility routines for libgcc2 and libobjc. */
/* Compile this one with gcc. */ /* Compile this one with gcc. */
/* Copyright (C) 1997, 1999, 2000, 2001, 2004, 2005 /* Copyright (C) 1997, 1999, 2000, 2001, 2004, 2005, 2008, 2009
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -431,122 +431,123 @@ __gthread_objc_condition_signal (objc_condition_t condition ...@@ -431,122 +431,123 @@ __gthread_objc_condition_signal (objc_condition_t condition
#else /* _LIBOBJC */ #else /* _LIBOBJC */
static inline int static inline int
__gthread_once (__gthread_once_t *once, void (*func) (void)) __gthread_once (__gthread_once_t *__once, void (*__func) (void))
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(pthread_once) (once, func); return __gthrw_(pthread_once) (__once, __func);
else else
return -1; return -1;
} }
static inline int static inline int
__gthread_key_create (__gthread_key_t *key, void (*dtor) (void *)) __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
{ {
return __gthrw_(pthread_keycreate) (key, dtor); return __gthrw_(pthread_keycreate) (__key, __dtor);
} }
static inline int static inline int
__gthread_key_delete (__gthread_key_t key __attribute__ ((__unused__))) __gthread_key_delete (__gthread_key_t __key __attribute__ ((__unused__)))
{ {
/* Operation is not supported. */ /* Operation is not supported. */
return -1; return -1;
} }
static inline void * static inline void *
__gthread_getspecific (__gthread_key_t key) __gthread_getspecific (__gthread_key_t __key)
{ {
void *ptr; void *__ptr;
if (__gthrw_(pthread_getspecific) (key, &ptr) == 0) if (__gthrw_(pthread_getspecific) (__key, &__ptr) == 0)
return ptr; return __ptr;
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_setspecific (__gthread_key_t key, const void *ptr) __gthread_setspecific (__gthread_key_t __key, const void *__ptr)
{ {
return __gthrw_(pthread_setspecific) (key, (void *) ptr); return __gthrw_(pthread_setspecific) (__key, (void *) __ptr);
} }
static inline void static inline void
__gthread_mutex_init_function (__gthread_mutex_t *mutex) __gthread_mutex_init_function (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
__gthrw_(pthread_mutex_init) (mutex, pthread_mutexattr_default); __gthrw_(pthread_mutex_init) (__mutex, pthread_mutexattr_default);
} }
static inline int static inline int
__gthread_mutx_destroy (__gthread_mutex_t *mutex) __gthread_mutx_destroy (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(pthread_mutex_destroy) (mutex); return __gthrw_(pthread_mutex_destroy) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_lock (__gthread_mutex_t *mutex) __gthread_mutex_lock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(pthread_mutex_lock) (mutex); return __gthrw_(pthread_mutex_lock) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_trylock (__gthread_mutex_t *mutex) __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(pthread_mutex_trylock) (mutex); return __gthrw_(pthread_mutex_trylock) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_unlock (__gthread_mutex_t *mutex) __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(pthread_mutex_unlock) (mutex); return __gthrw_(pthread_mutex_unlock) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t __attr;
int r; int __r;
r = __gthrw_(pthread_mutexattr_create) (&attr); __r = __gthrw_(pthread_mutexattr_create) (&__attr);
if (!r) if (!__r)
r = __gthrw_(pthread_mutexattr_setkind_np) (&attr, MUTEX_RECURSIVE_NP); __r = __gthrw_(pthread_mutexattr_setkind_np) (&__attr,
if (!r) MUTEX_RECURSIVE_NP);
r = __gthrw_(pthread_mutex_init) (mutex, attr); if (!__r)
if (!r) __r = __gthrw_(pthread_mutex_init) (__mutex, __attr);
r = __gthrw_(pthread_mutexattr_delete) (&attr); if (!__r)
return r; __r = __gthrw_(pthread_mutexattr_delete) (&__attr);
return __r;
} }
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
{ {
return __gthread_mutex_lock (mutex); return __gthread_mutex_lock (__mutex);
} }
static inline int static inline int
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
{ {
return __gthread_mutex_trylock (mutex); return __gthread_mutex_trylock (__mutex);
} }
static inline int static inline int
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
{ {
return __gthread_mutex_unlock (mutex); return __gthread_mutex_unlock (__mutex);
} }
#endif /* _LIBOBJC */ #endif /* _LIBOBJC */
......
/* Threads compatibility routines for libgcc2. */ /* Threads compatibility routines for libgcc2. */
/* Compile this one with gcc. */ /* Compile this one with gcc. */
/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. /* Copyright (C) 2003, 2004, 2008, 2009 Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -38,7 +38,7 @@ typedef int __gthread_mutex_t; ...@@ -38,7 +38,7 @@ typedef int __gthread_mutex_t;
#define __GTHREAD_MUTEX_INIT 0 #define __GTHREAD_MUTEX_INIT 0
extern void __gnat_install_locks (void (*lock) (void), void (*unlock) (void)); extern void __gnat_install_locks (void (*) (void), void (*) (void));
extern int __gthread_active_p (void); extern int __gthread_active_p (void);
extern int __gthread_mutex_lock (__gthread_mutex_t *); extern int __gthread_mutex_lock (__gthread_mutex_t *);
extern int __gthread_mutex_unlock (__gthread_mutex_t *); extern int __gthread_mutex_unlock (__gthread_mutex_t *);
......
/* MIPS SDE threads compatibility routines for libgcc2 and libobjc. */ /* MIPS SDE threads compatibility routines for libgcc2 and libobjc. */
/* Compile this one with gcc. */ /* Compile this one with gcc. */
/* Copyright (C) 2006, 2007 Free Software Foundation, Inc. /* Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
Contributed by Nigel Stephens <nigel@mips.com> Contributed by Nigel Stephens <nigel@mips.com>
This file is part of GCC. This file is part of GCC.
...@@ -55,7 +55,7 @@ typedef struct { ...@@ -55,7 +55,7 @@ typedef struct {
#define __GTHREAD_MUTEX_INIT __SDETHREAD_MUTEX_INITIALIZER("gthr") #define __GTHREAD_MUTEX_INIT __SDETHREAD_MUTEX_INITIALIZER("gthr")
#define __GTHREAD_ONCE_INIT __SDETHREAD_ONCE_INIT #define __GTHREAD_ONCE_INIT __SDETHREAD_ONCE_INIT
static inline int static inline int
__gthread_recursive_mutex_init_function(__gthread_recursive_mutex_t *mutex); __gthread_recursive_mutex_init_function(__gthread_recursive_mutex_t *__mutex);
#define __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION __gthread_recursive_mutex_init_function #define __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION __gthread_recursive_mutex_init_function
#if SUPPORTS_WEAK && GTHREAD_USE_WEAK #if SUPPORTS_WEAK && GTHREAD_USE_WEAK
...@@ -102,125 +102,125 @@ __gthread_active_p (void) ...@@ -102,125 +102,125 @@ __gthread_active_p (void)
#endif /* SUPPORTS_WEAK */ #endif /* SUPPORTS_WEAK */
static inline int static inline int
__gthread_once (__gthread_once_t *once, void (*func) (void)) __gthread_once (__gthread_once_t *__once, void (*__func) (void))
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(__sdethread_once) (once, func); return __gthrw_(__sdethread_once) (__once, __func);
else else
return -1; return -1;
} }
static inline int static inline int
__gthread_key_create (__gthread_key_t *key, void (*dtor) (void *)) __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
{ {
return __gthrw_(__sdethread_key_create) (key, dtor); return __gthrw_(__sdethread_key_create) (__key, __dtor);
} }
static inline int static inline int
__gthread_key_delete (__gthread_key_t key) __gthread_key_delete (__gthread_key_t __key)
{ {
return __gthrw_(__sdethread_key_delete) (key); return __gthrw_(__sdethread_key_delete) (__key);
} }
static inline void * static inline void *
__gthread_getspecific (__gthread_key_t key) __gthread_getspecific (__gthread_key_t __key)
{ {
return __gthrw_(__sdethread_getspecific) (key); return __gthrw_(__sdethread_getspecific) (__key);
} }
static inline int static inline int
__gthread_setspecific (__gthread_key_t key, const void *ptr) __gthread_setspecific (__gthread_key_t __key, const void *__ptr)
{ {
return __gthrw_(__sdethread_setspecific) (key, ptr); return __gthrw_(__sdethread_setspecific) (__key, __ptr);
} }
static inline int static inline int
__gthread_mutex_destroy (__gthread_mutex_t * UNUSED(mutex)) __gthread_mutex_destroy (__gthread_mutex_t * UNUSED(__mutex))
{ {
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_lock (__gthread_mutex_t *mutex) __gthread_mutex_lock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(__sdethread_mutex_lock) (mutex); return __gthrw_(__sdethread_mutex_lock) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_trylock (__gthread_mutex_t *mutex) __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(__sdethread_mutex_trylock) (mutex); return __gthrw_(__sdethread_mutex_trylock) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_unlock (__gthread_mutex_t *mutex) __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(__sdethread_mutex_unlock) (mutex); return __gthrw_(__sdethread_mutex_unlock) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
{ {
mutex->depth = 0; __mutex->depth = 0;
mutex->owner = __gthrw_(__sdethread_self) (); __mutex->owner = __gthrw_(__sdethread_self) ();
return __gthrw_(__sdethread_mutex_init) (&mutex->actual, NULL); return __gthrw_(__sdethread_mutex_init) (&__mutex->actual, NULL);
} }
static inline int static inline int
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
__sdethread_t me = __gthrw_(__sdethread_self) (); __sdethread_t __me = __gthrw_(__sdethread_self) ();
if (mutex->owner != me) if (__mutex->owner != __me)
{ {
__gthrw_(__sdethread_mutex_lock) (&mutex->actual); __gthrw_(__sdethread_mutex_lock) (&__mutex->actual);
mutex->owner = me; __mutex->owner = __me;
} }
mutex->depth++; __mutex->depth++;
} }
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
__sdethread_t me = __gthrw_(__sdethread_self) (); __sdethread_t __me = __gthrw_(__sdethread_self) ();
if (mutex->owner != me) if (__mutex->owner != __me)
{ {
if (__gthrw_(__sdethread_mutex_trylock) (&mutex->actual)) if (__gthrw_(__sdethread_mutex_trylock) (&__mutex->actual))
return 1; return 1;
mutex->owner = me; __mutex->owner = __me;
} }
mutex->depth++; __mutex->depth++;
} }
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
if (--mutex->depth == 0) if (--__mutex->depth == 0)
{ {
mutex->owner = (__sdethread_t) 0; __mutex->owner = (__sdethread_t) 0;
__gthrw_(__sdethread_mutex_unlock) (&mutex->actual); __gthrw_(__sdethread_mutex_unlock) (&__mutex->actual);
} }
} }
return 0; return 0;
......
/* Threads compatibility routines for libgcc2 and libobjc. */ /* Threads compatibility routines for libgcc2 and libobjc. */
/* Compile this one with gcc. */ /* Compile this one with gcc. */
/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc. /* Copyright (C) 2002, 2003, 2004, 2008, 2009 Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -281,118 +281,118 @@ typedef volatile long __gthread_once_t; ...@@ -281,118 +281,118 @@ typedef volatile long __gthread_once_t;
#define __GTHREAD_ONCE_INIT 0 #define __GTHREAD_ONCE_INIT 0
static inline int static inline int
__gthread_once (__gthread_once_t *once, void (*func) (void)) __gthread_once (__gthread_once_t *__once, void (*__func) (void))
{ {
if (__compare_and_swap (once, 0, 1)) if (__compare_and_swap (__once, 0, 1))
{ {
func(); __func ();
*once |= 2; *__once |= 2;
} }
else else
{ {
while (!(*once & 2)) while (!(*__once & 2))
NXThreadYield (); NXThreadYield ();
} }
return 0; return 0;
} }
static inline int static inline int
__gthread_key_create (__gthread_key_t *key, void (*dtor) (void *)) __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
{ {
return NXKeyCreate (dtor, NULL, key); return NXKeyCreate (__dtor, NULL, __key);
} }
static inline int static inline int
__gthread_key_dtor (__gthread_key_t key, void *ptr) __gthread_key_dtor (__gthread_key_t __key, void *__ptr)
{ {
/* Just reset the key value to zero. */ /* Just reset the key value to zero. */
if (ptr) if (__ptr)
return NXKeySetValue (key, NULL); return NXKeySetValue (__key, NULL);
return 0; return 0;
} }
static inline int static inline int
__gthread_key_delete (__gthread_key_t key) __gthread_key_delete (__gthread_key_t __key)
{ {
return NXKeyDelete (key); return NXKeyDelete (__key);
} }
static inline void * static inline void *
__gthread_getspecific (__gthread_key_t key) __gthread_getspecific (__gthread_key_t __key)
{ {
void *value; void *__value;
if (NXKeyGetValue (key, &value) == 0) if (NXKeyGetValue (__key, &__value) == 0)
return value; return __value;
return NULL; return NULL;
} }
static inline int static inline int
__gthread_setspecific (__gthread_key_t key, const void *ptr) __gthread_setspecific (__gthread_key_t __key, const void *__ptr)
{ {
return NXKeySetValue (key, (void *)ptr); return NXKeySetValue (__key, (void *)__ptr);
} }
static inline void static inline void
__gthread_mutex_init_function (__gthread_mutex_t *mutex) __gthread_mutex_init_function (__gthread_mutex_t *__mutex)
{ {
static const NX_LOCK_INFO_ALLOC (info, "GTHREADS", 0); static const NX_LOCK_INFO_ALLOC (__info, "GTHREADS", 0);
*mutex = NXMutexAlloc (0, 0, &info); *__mutex = NXMutexAlloc (0, 0, &__info);
} }
static inline int static inline int
__gthread_mutex_destroy (__gthread_mutex_t * UNUSED(mutex)) __gthread_mutex_destroy (__gthread_mutex_t * UNUSED(__mutex))
{ {
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_lock (__gthread_mutex_t *mutex) __gthread_mutex_lock (__gthread_mutex_t *__mutex)
{ {
return NXLock (*mutex); return NXLock (*__mutex);
} }
static inline int static inline int
__gthread_mutex_trylock (__gthread_mutex_t *mutex) __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
{ {
if (NXTryLock (*mutex)) if (NXTryLock (*__mutex))
return 0; return 0;
return -1; return -1;
} }
static inline int static inline int
__gthread_mutex_unlock (__gthread_mutex_t *mutex) __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
{ {
return NXUnlock (*mutex); return NXUnlock (*__mutex);
} }
static inline void static inline void
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
{ {
static const NX_LOCK_INFO_ALLOC (info, "GTHREADS", 0); static const NX_LOCK_INFO_ALLOC (__info, "GTHREADS", 0);
*mutex = NXMutexAlloc (NX_MUTEX_RECURSIVE, 0, &info); *__mutex = NXMutexAlloc (NX_MUTEX_RECURSIVE, 0, &__info);
} }
static inline int static inline int
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
{ {
return NXLock (*mutex); return NXLock (*__mutex);
} }
static inline int static inline int
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
{ {
if (NXTryLock (*mutex)) if (NXTryLock (*__mutex))
return 0; return 0;
return -1; return -1;
} }
static inline int static inline int
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
{ {
return NXUnlock (*mutex); return NXUnlock (*__mutex);
} }
#endif /* _LIBOBJC */ #endif /* _LIBOBJC */
......
/* Threads compatibility routines for libgcc2 and libobjc. */ /* Threads compatibility routines for libgcc2 and libobjc. */
/* Compile this one with gcc. */ /* Compile this one with gcc. */
/* Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 /* Copyright (C) 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
Free Software Foundation, Inc. 2008, 2009 Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -267,7 +267,7 @@ __gthread_active_p (void) ...@@ -267,7 +267,7 @@ __gthread_active_p (void)
static volatile int __gthread_active = -1; static volatile int __gthread_active = -1;
static void * static void *
__gthread_start (void *arg __attribute__((unused))) __gthread_start (void *__arg __attribute__((unused)))
{ {
return NULL; return NULL;
} }
...@@ -277,21 +277,21 @@ static void ...@@ -277,21 +277,21 @@ static void
__gthread_active_init (void) __gthread_active_init (void)
{ {
static pthread_mutex_t __gthread_active_mutex = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t __gthread_active_mutex = PTHREAD_MUTEX_INITIALIZER;
pthread_t t; pthread_t __t;
pthread_attr_t a; pthread_attr_t __a;
int result; int __result;
__gthrw_(pthread_mutex_lock) (&__gthread_active_mutex); __gthrw_(pthread_mutex_lock) (&__gthread_active_mutex);
if (__gthread_active < 0) if (__gthread_active < 0)
{ {
__gthrw_(pthread_attr_init) (&a); __gthrw_(pthread_attr_init) (&__a);
__gthrw_(pthread_attr_setdetachstate) (&a, PTHREAD_CREATE_DETACHED); __gthrw_(pthread_attr_setdetachstate) (&__a, PTHREAD_CREATE_DETACHED);
result = __gthrw_(pthread_create) (&t, &a, __gthread_start, NULL); __result = __gthrw_(pthread_create) (&__t, &__a, __gthread_start, NULL);
if (result != ENOSYS) if (__result != ENOSYS)
__gthread_active = 1; __gthread_active = 1;
else else
__gthread_active = 0; __gthread_active = 0;
__gthrw_(pthread_attr_destroy) (&a); __gthrw_(pthread_attr_destroy) (&__a);
} }
__gthrw_(pthread_mutex_unlock) (&__gthread_active_mutex); __gthrw_(pthread_mutex_unlock) (&__gthread_active_mutex);
} }
...@@ -676,27 +676,28 @@ __gthread_objc_condition_signal (objc_condition_t condition) ...@@ -676,27 +676,28 @@ __gthread_objc_condition_signal (objc_condition_t condition)
#else /* _LIBOBJC */ #else /* _LIBOBJC */
static inline int static inline int
__gthread_create (__gthread_t *thread, void *(*func) (void*), void *args) __gthread_create (__gthread_t *__threadid, void *(*__func) (void*),
void *__args)
{ {
return __gthrw_(pthread_create) (thread, NULL, func, args); return __gthrw_(pthread_create) (__threadid, NULL, __func, __args);
} }
static inline int static inline int
__gthread_join (__gthread_t thread, void **value_ptr) __gthread_join (__gthread_t __threadid, void **__value_ptr)
{ {
return __gthrw_(pthread_join) (thread, value_ptr); return __gthrw_(pthread_join) (__threadid, __value_ptr);
} }
static inline int static inline int
__gthread_detach (__gthread_t thread) __gthread_detach (__gthread_t __threadid)
{ {
return __gthrw_(pthread_detach) (thread); return __gthrw_(pthread_detach) (__threadid);
} }
static inline int static inline int
__gthread_equal (__gthread_t t1, __gthread_t t2) __gthread_equal (__gthread_t __t1, __gthread_t __t2)
{ {
return __gthrw_(pthread_equal) (t1, t2); return __gthrw_(pthread_equal) (__t1, __t2);
} }
static inline __gthread_t static inline __gthread_t
...@@ -712,61 +713,61 @@ __gthread_yield (void) ...@@ -712,61 +713,61 @@ __gthread_yield (void)
} }
static inline int static inline int
__gthread_once (__gthread_once_t *once, void (*func) (void)) __gthread_once (__gthread_once_t *__once, void (*__func) (void))
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(pthread_once) (once, func); return __gthrw_(pthread_once) (__once, __func);
else else
return -1; return -1;
} }
static inline int static inline int
__gthread_key_create (__gthread_key_t *key, void (*dtor) (void *)) __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
{ {
return __gthrw_(pthread_key_create) (key, dtor); return __gthrw_(pthread_key_create) (__key, __dtor);
} }
static inline int static inline int
__gthread_key_delete (__gthread_key_t key) __gthread_key_delete (__gthread_key_t __key)
{ {
return __gthrw_(pthread_key_delete) (key); return __gthrw_(pthread_key_delete) (__key);
} }
static inline void * static inline void *
__gthread_getspecific (__gthread_key_t key) __gthread_getspecific (__gthread_key_t __key)
{ {
return __gthrw_(pthread_getspecific) (key); return __gthrw_(pthread_getspecific) (__key);
} }
static inline int static inline int
__gthread_setspecific (__gthread_key_t key, const void *ptr) __gthread_setspecific (__gthread_key_t __key, const void *__ptr)
{ {
return __gthrw_(pthread_setspecific) (key, ptr); return __gthrw_(pthread_setspecific) (__key, __ptr);
} }
static inline int static inline int
__gthread_mutex_destroy (__gthread_mutex_t *mutex) __gthread_mutex_destroy (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(pthread_mutex_destroy) (mutex); return __gthrw_(pthread_mutex_destroy) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_lock (__gthread_mutex_t *mutex) __gthread_mutex_lock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(pthread_mutex_lock) (mutex); return __gthrw_(pthread_mutex_lock) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_trylock (__gthread_mutex_t *mutex) __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(pthread_mutex_trylock) (mutex); return __gthrw_(pthread_mutex_trylock) (__mutex);
else else
return 0; return 0;
} }
...@@ -774,11 +775,11 @@ __gthread_mutex_trylock (__gthread_mutex_t *mutex) ...@@ -774,11 +775,11 @@ __gthread_mutex_trylock (__gthread_mutex_t *mutex)
#ifdef _POSIX_TIMEOUTS #ifdef _POSIX_TIMEOUTS
#if _POSIX_TIMEOUTS >= 0 #if _POSIX_TIMEOUTS >= 0
static inline int static inline int
__gthread_mutex_timedlock (__gthread_mutex_t *mutex, __gthread_mutex_timedlock (__gthread_mutex_t *__mutex,
const __gthread_time_t *abs_timeout) const __gthread_time_t *__abs_timeout)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(pthread_mutex_timedlock) (mutex, abs_timeout); return __gthrw_(pthread_mutex_timedlock) (__mutex, __abs_timeout);
else else
return 0; return 0;
} }
...@@ -786,109 +787,110 @@ __gthread_mutex_timedlock (__gthread_mutex_t *mutex, ...@@ -786,109 +787,110 @@ __gthread_mutex_timedlock (__gthread_mutex_t *mutex,
#endif #endif
static inline int static inline int
__gthread_mutex_unlock (__gthread_mutex_t *mutex) __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(pthread_mutex_unlock) (mutex); return __gthrw_(pthread_mutex_unlock) (__mutex);
else else
return 0; return 0;
} }
#ifndef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP #ifndef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
static inline int static inline int
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t __attr;
int r; int __r;
r = __gthrw_(pthread_mutexattr_init) (&attr); __r = __gthrw_(pthread_mutexattr_init) (&__attr);
if (!r) if (!__r)
r = __gthrw_(pthread_mutexattr_settype) (&attr, PTHREAD_MUTEX_RECURSIVE); __r = __gthrw_(pthread_mutexattr_settype) (&__attr,
if (!r) PTHREAD_MUTEX_RECURSIVE);
r = __gthrw_(pthread_mutex_init) (mutex, &attr); if (!__r)
if (!r) __r = __gthrw_(pthread_mutex_init) (__mutex, &__attr);
r = __gthrw_(pthread_mutexattr_destroy) (&attr); if (!__r)
return r; __r = __gthrw_(pthread_mutexattr_destroy) (&__attr);
return __r;
} }
return 0; return 0;
} }
#endif #endif
static inline int static inline int
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
{ {
return __gthread_mutex_lock (mutex); return __gthread_mutex_lock (__mutex);
} }
static inline int static inline int
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
{ {
return __gthread_mutex_trylock (mutex); return __gthread_mutex_trylock (__mutex);
} }
#ifdef _POSIX_TIMEOUTS #ifdef _POSIX_TIMEOUTS
#if _POSIX_TIMEOUTS >= 0 #if _POSIX_TIMEOUTS >= 0
static inline int static inline int
__gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *mutex, __gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex,
const __gthread_time_t *abs_timeout) const __gthread_time_t *__abs_timeout)
{ {
return __gthread_mutex_timedlock (mutex, abs_timeout); return __gthread_mutex_timedlock (__mutex, __abs_timeout);
} }
#endif #endif
#endif #endif
static inline int static inline int
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
{ {
return __gthread_mutex_unlock (mutex); return __gthread_mutex_unlock (__mutex);
} }
static inline int static inline int
__gthread_cond_broadcast (__gthread_cond_t *cond) __gthread_cond_broadcast (__gthread_cond_t *__cond)
{ {
return __gthrw_(pthread_cond_broadcast) (cond); return __gthrw_(pthread_cond_broadcast) (__cond);
} }
static inline int static inline int
__gthread_cond_signal (__gthread_cond_t *cond) __gthread_cond_signal (__gthread_cond_t *__cond)
{ {
return __gthrw_(pthread_cond_signal) (cond); return __gthrw_(pthread_cond_signal) (__cond);
} }
static inline int static inline int
__gthread_cond_wait (__gthread_cond_t *cond, __gthread_mutex_t *mutex) __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex)
{ {
return __gthrw_(pthread_cond_wait) (cond, mutex); return __gthrw_(pthread_cond_wait) (__cond, __mutex);
} }
static inline int static inline int
__gthread_cond_timedwait (__gthread_cond_t *cond, __gthread_mutex_t *mutex, __gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex,
const __gthread_time_t *abs_timeout) const __gthread_time_t *__abs_timeout)
{ {
return __gthrw_(pthread_cond_timedwait) (cond, mutex, abs_timeout); return __gthrw_(pthread_cond_timedwait) (__cond, __mutex, __abs_timeout);
} }
static inline int static inline int
__gthread_cond_wait_recursive (__gthread_cond_t *cond, __gthread_cond_wait_recursive (__gthread_cond_t *__cond,
__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_t *__mutex)
{ {
return __gthread_cond_wait (cond, mutex); return __gthread_cond_wait (__cond, __mutex);
} }
static inline int static inline int
__gthread_cond_timedwait_recursive (__gthread_cond_t *cond, __gthread_cond_timedwait_recursive (__gthread_cond_t *__cond,
__gthread_recursive_mutex_t *mutex, __gthread_recursive_mutex_t *__mutex,
const __gthread_time_t *abs_timeout) const __gthread_time_t *__abs_timeout)
{ {
return __gthread_cond_timedwait (cond, mutex, abs_timeout); return __gthread_cond_timedwait (__cond, __mutex, __abs_timeout);
} }
static inline int static inline int
__gthread_cond_destroy (__gthread_cond_t* cond) __gthread_cond_destroy (__gthread_cond_t* __cond)
{ {
return __gthrw_(pthread_cond_destroy) (cond); return __gthrw_(pthread_cond_destroy) (__cond);
} }
#endif /* _LIBOBJC */ #endif /* _LIBOBJC */
......
/* Threads compatibility routines for libgcc2 and libobjc. */ /* Threads compatibility routines for libgcc2 and libobjc. */
/* Compile this one with gcc. */ /* Compile this one with gcc. */
/* Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc. /* Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -610,150 +610,150 @@ __gthread_objc_condition_signal (objc_condition_t condition) ...@@ -610,150 +610,150 @@ __gthread_objc_condition_signal (objc_condition_t condition)
#else /* _LIBOBJC */ #else /* _LIBOBJC */
static inline int static inline int
__gthread_once (__gthread_once_t *once, void (*func) (void)) __gthread_once (__gthread_once_t *__once, void (*__func) (void))
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(pthread_once) (once, func); return __gthrw_(pthread_once) (__once, __func);
else else
return -1; return -1;
} }
static inline int static inline int
__gthread_key_create (__gthread_key_t *key, void (*dtor) (void *)) __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
{ {
return __gthrw_(pthread_key_create) (key, dtor); return __gthrw_(pthread_key_create) (__key, __dtor);
} }
static inline int static inline int
__gthread_key_delete (__gthread_key_t key) __gthread_key_delete (__gthread_key_t __key)
{ {
return __gthrw_(pthread_key_delete) (key); return __gthrw_(pthread_key_delete) (__key);
} }
static inline void * static inline void *
__gthread_getspecific (__gthread_key_t key) __gthread_getspecific (__gthread_key_t __key)
{ {
return __gthrw_(pthread_getspecific) (key); return __gthrw_(pthread_getspecific) (__key);
} }
static inline int static inline int
__gthread_setspecific (__gthread_key_t key, const void *ptr) __gthread_setspecific (__gthread_key_t __key, const void *__ptr)
{ {
return __gthrw_(pthread_setspecific) (key, ptr); return __gthrw_(pthread_setspecific) (__key, __ptr);
} }
static inline int static inline int
__gthread_mutex_destroy (__gthread_mutex_t *mutex) __gthread_mutex_destroy (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(pthread_mutex_destroy) (mutex); return __gthrw_(pthread_mutex_destroy) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_lock (__gthread_mutex_t *mutex) __gthread_mutex_lock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(pthread_mutex_lock) (mutex); return __gthrw_(pthread_mutex_lock) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_trylock (__gthread_mutex_t *mutex) __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(pthread_mutex_trylock) (mutex); return __gthrw_(pthread_mutex_trylock) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_unlock (__gthread_mutex_t *mutex) __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(pthread_mutex_unlock) (mutex); return __gthrw_(pthread_mutex_unlock) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
{ {
mutex->depth = 0; __mutex->depth = 0;
mutex->owner = (pthread_t) 0; __mutex->owner = (pthread_t) 0;
return __gthrw_(pthread_mutex_init) (&mutex->actual, NULL); return __gthrw_(pthread_mutex_init) (&__mutex->actual, NULL);
} }
static inline int static inline int
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
pthread_t me = __gthrw_(pthread_self) (); pthread_t __me = __gthrw_(pthread_self) ();
if (mutex->owner != me) if (__mutex->owner != __me)
{ {
__gthrw_(pthread_mutex_lock) (&mutex->actual); __gthrw_(pthread_mutex_lock) (&__mutex->actual);
mutex->owner = me; __mutex->owner = __me;
} }
mutex->depth++; __mutex->depth++;
} }
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
pthread_t me = __gthrw_(pthread_self) (); pthread_t __me = __gthrw_(pthread_self) ();
if (mutex->owner != me) if (__mutex->owner != __me)
{ {
if (__gthrw_(pthread_mutex_trylock) (&mutex->actual)) if (__gthrw_(pthread_mutex_trylock) (&__mutex->actual))
return 1; return 1;
mutex->owner = me; __mutex->owner = __me;
} }
mutex->depth++; __mutex->depth++;
} }
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
if (--mutex->depth == 0) if (--__mutex->depth == 0)
{ {
mutex->owner = (pthread_t) 0; __mutex->owner = (pthread_t) 0;
__gthrw_(pthread_mutex_unlock) (&mutex->actual); __gthrw_(pthread_mutex_unlock) (&__mutex->actual);
} }
} }
return 0; return 0;
} }
static inline int static inline int
__gthread_cond_broadcast (__gthread_cond_t *cond) __gthread_cond_broadcast (__gthread_cond_t *__cond)
{ {
return __gthrw_(pthread_cond_broadcast) (cond); return __gthrw_(pthread_cond_broadcast) (__cond);
} }
static inline int static inline int
__gthread_cond_wait (__gthread_cond_t *cond, __gthread_mutex_t *mutex) __gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex)
{ {
return __gthrw_(pthread_cond_wait) (cond, mutex); return __gthrw_(pthread_cond_wait) (__cond, __mutex);
} }
static inline int static inline int
__gthread_cond_wait_recursive (__gthread_cond_t *cond, __gthread_cond_wait_recursive (__gthread_cond_t *__cond,
__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_t *__mutex)
{ {
return __gthrw_(pthread_cond_wait) (cond, &mutex->actual); return __gthrw_(pthread_cond_wait) (__cond, &__mutex->actual);
} }
#endif /* _LIBOBJC */ #endif /* _LIBOBJC */
......
/* RTEMS threads compatibility routines for libgcc2 and libobjc. /* RTEMS threads compatibility routines for libgcc2 and libobjc.
by: Rosimildo da Silva( rdasilva@connecttel.com ) */ by: Rosimildo da Silva( rdasilva@connecttel.com ) */
/* Compile this one with gcc. */ /* Compile this one with gcc. */
/* Copyright (C) 1997, 1999, 2000, 2002, 2003, 2005 /* Copyright (C) 1997, 1999, 2000, 2002, 2003, 2005, 2008, 2009
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -54,24 +54,24 @@ typedef void *__gthread_recursive_mutex_t; ...@@ -54,24 +54,24 @@ typedef void *__gthread_recursive_mutex_t;
*/ */
/* generic per task variables */ /* generic per task variables */
extern int rtems_gxx_once (__gthread_once_t *once, void (*func) (void)); extern int rtems_gxx_once (__gthread_once_t *__once, void (*__func) (void));
extern int rtems_gxx_key_create (__gthread_key_t *key, void (*dtor) (void *)); extern int rtems_gxx_key_create (__gthread_key_t *__key, void (*__dtor) (void *));
extern int rtems_gxx_key_delete (__gthread_key_t key); extern int rtems_gxx_key_delete (__gthread_key_t __key);
extern void *rtems_gxx_getspecific (__gthread_key_t key); extern void *rtems_gxx_getspecific (__gthread_key_t __key);
extern int rtems_gxx_setspecific (__gthread_key_t key, const void *ptr); extern int rtems_gxx_setspecific (__gthread_key_t __key, const void *__ptr);
/* mutex support */ /* mutex support */
extern void rtems_gxx_mutex_init (__gthread_mutex_t *mutex); extern void rtems_gxx_mutex_init (__gthread_mutex_t *__mutex);
extern int rtems_gxx_mutex_destroy (__gthread_mutex_t *mutex); extern int rtems_gxx_mutex_destroy (__gthread_mutex_t *__mutex);
extern int rtems_gxx_mutex_lock (__gthread_mutex_t *mutex); extern int rtems_gxx_mutex_lock (__gthread_mutex_t *__mutex);
extern int rtems_gxx_mutex_trylock (__gthread_mutex_t *mutex); extern int rtems_gxx_mutex_trylock (__gthread_mutex_t *__mutex);
extern int rtems_gxx_mutex_unlock (__gthread_mutex_t *mutex); extern int rtems_gxx_mutex_unlock (__gthread_mutex_t *__mutex);
/* recursive mutex support */ /* recursive mutex support */
extern void rtems_gxx_recursive_mutex_init (__gthread_recursive_mutex_t *mutex); extern void rtems_gxx_recursive_mutex_init (__gthread_recursive_mutex_t *__mutex);
extern int rtems_gxx_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex); extern int rtems_gxx_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex);
extern int rtems_gxx_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex); extern int rtems_gxx_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex);
extern int rtems_gxx_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex); extern int rtems_gxx_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex);
/* RTEMS threading is always active */ /* RTEMS threading is always active */
static inline int static inline int
...@@ -82,75 +82,75 @@ __gthread_active_p (void) ...@@ -82,75 +82,75 @@ __gthread_active_p (void)
/* Wrapper calls */ /* Wrapper calls */
static inline int static inline int
__gthread_once (__gthread_once_t *once, void (*func) (void)) __gthread_once (__gthread_once_t *__once, void (*__func) (void))
{ {
return rtems_gxx_once( once, func ); return rtems_gxx_once( __once, __func );
} }
static inline int static inline int
__gthread_key_create (__gthread_key_t *key, void (*dtor) (void *)) __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
{ {
return rtems_gxx_key_create( key, dtor ); return rtems_gxx_key_create( __key, __dtor );
} }
static inline int static inline int
__gthread_key_delete (__gthread_key_t key) __gthread_key_delete (__gthread_key_t __key)
{ {
return rtems_gxx_key_delete (key); return rtems_gxx_key_delete (__key);
} }
static inline void * static inline void *
__gthread_getspecific (__gthread_key_t key) __gthread_getspecific (__gthread_key_t __key)
{ {
return rtems_gxx_getspecific (key); return rtems_gxx_getspecific (__key);
} }
static inline int static inline int
__gthread_setspecific (__gthread_key_t key, const void *ptr) __gthread_setspecific (__gthread_key_t __key, const void *__ptr)
{ {
return rtems_gxx_setspecific (key, ptr); return rtems_gxx_setspecific (__key, __ptr);
} }
static inline int static inline int
__gthread_mutex_destroy (__gthread_mutex_t *mutex) __gthread_mutex_destroy (__gthread_mutex_t *__mutex)
{ {
return rtems_gxx_mutex_destroy (mutex); return rtems_gxx_mutex_destroy (__mutex);
} }
static inline int static inline int
__gthread_mutex_lock (__gthread_mutex_t *mutex) __gthread_mutex_lock (__gthread_mutex_t *__mutex)
{ {
return rtems_gxx_mutex_lock (mutex); return rtems_gxx_mutex_lock (__mutex);
} }
static inline int static inline int
__gthread_mutex_trylock (__gthread_mutex_t *mutex) __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
{ {
return rtems_gxx_mutex_trylock (mutex); return rtems_gxx_mutex_trylock (__mutex);
} }
static inline int static inline int
__gthread_mutex_unlock (__gthread_mutex_t *mutex) __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
{ {
return rtems_gxx_mutex_unlock( mutex ); return rtems_gxx_mutex_unlock( __mutex );
} }
static inline int static inline int
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
{ {
return rtems_gxx_recursive_mutex_lock (mutex); return rtems_gxx_recursive_mutex_lock (__mutex);
} }
static inline int static inline int
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
{ {
return rtems_gxx_recursive_mutex_trylock (mutex); return rtems_gxx_recursive_mutex_trylock (__mutex);
} }
static inline int static inline int
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
{ {
return rtems_gxx_recursive_mutex_unlock( mutex ); return rtems_gxx_recursive_mutex_unlock( __mutex );
} }
#ifdef __cplusplus #ifdef __cplusplus
......
/* Threads compatibility routines for libgcc2 and libobjc. */ /* Threads compatibility routines for libgcc2 and libobjc. */
/* Compile this one with gcc. */ /* Compile this one with gcc. */
/* Copyright (C) 1997, 1999, 2000, 2004, 2008 Free Software Foundation, Inc. /* Copyright (C) 1997, 1999, 2000, 2004, 2008, 2009
Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -216,75 +217,75 @@ __gthread_active_p (void) ...@@ -216,75 +217,75 @@ __gthread_active_p (void)
} }
static inline int static inline int
__gthread_once (__gthread_once_t *once UNUSED, void (*func) (void) UNUSED) __gthread_once (__gthread_once_t *__once UNUSED, void (*__func) (void) UNUSED)
{ {
return 0; return 0;
} }
static inline int UNUSED static inline int UNUSED
__gthread_key_create (__gthread_key_t *key UNUSED, void (*func) (void *) UNUSED) __gthread_key_create (__gthread_key_t *__key UNUSED, void (*__func) (void *) UNUSED)
{ {
return 0; return 0;
} }
static int UNUSED static int UNUSED
__gthread_key_delete (__gthread_key_t key UNUSED) __gthread_key_delete (__gthread_key_t __key UNUSED)
{ {
return 0; return 0;
} }
static inline void * static inline void *
__gthread_getspecific (__gthread_key_t key UNUSED) __gthread_getspecific (__gthread_key_t __key UNUSED)
{ {
return 0; return 0;
} }
static inline int static inline int
__gthread_setspecific (__gthread_key_t key UNUSED, const void *v UNUSED) __gthread_setspecific (__gthread_key_t __key UNUSED, const void *__v UNUSED)
{ {
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_destroy (__gthread_mutex_t *mutex UNUSED) __gthread_mutex_destroy (__gthread_mutex_t *__mutex UNUSED)
{ {
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_lock (__gthread_mutex_t *mutex UNUSED) __gthread_mutex_lock (__gthread_mutex_t *__mutex UNUSED)
{ {
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_trylock (__gthread_mutex_t *mutex UNUSED) __gthread_mutex_trylock (__gthread_mutex_t *__mutex UNUSED)
{ {
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_unlock (__gthread_mutex_t *mutex UNUSED) __gthread_mutex_unlock (__gthread_mutex_t *__mutex UNUSED)
{ {
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
{ {
return __gthread_mutex_lock (mutex); return __gthread_mutex_lock (__mutex);
} }
static inline int static inline int
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
{ {
return __gthread_mutex_trylock (mutex); return __gthread_mutex_trylock (__mutex);
} }
static inline int static inline int
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
{ {
return __gthread_mutex_unlock (mutex); return __gthread_mutex_unlock (__mutex);
} }
#endif /* _LIBOBJC */ #endif /* _LIBOBJC */
......
/* Threads compatibility routines for libgcc2 and libobjc. */ /* Threads compatibility routines for libgcc2 and libobjc. */
/* Compile this one with gcc. */ /* Compile this one with gcc. */
/* Copyright (C) 1997, 1999, 2000, 2004, 2005, 2006 /* Copyright (C) 1997, 1999, 2000, 2004, 2005, 2006, 2008, 2009
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -403,154 +403,155 @@ __gthread_objc_condition_signal (objc_condition_t condition) ...@@ -403,154 +403,155 @@ __gthread_objc_condition_signal (objc_condition_t condition)
#else /* _LIBOBJC */ #else /* _LIBOBJC */
static inline int static inline int
__gthread_once (__gthread_once_t *once, void (*func) (void)) __gthread_once (__gthread_once_t *__once, void (*__func) (void))
{ {
if (! __gthread_active_p ()) if (! __gthread_active_p ())
return -1; return -1;
if (once == 0 || func == 0) if (__once == 0 || __func == 0)
return EINVAL; return EINVAL;
if (once->once == 0) if (__once->once == 0)
{ {
int status = __gthrw_(mutex_lock) (&once->mutex); int __status = __gthrw_(mutex_lock) (&__once->mutex);
if (status != 0) if (__status != 0)
return status; return __status;
if (once->once == 0) if (__once->once == 0)
{ {
(*func) (); (*__func) ();
once->once++; __once->once++;
} }
__gthrw_(mutex_unlock) (&once->mutex); __gthrw_(mutex_unlock) (&__once->mutex);
} }
return 0; return 0;
} }
static inline int static inline int
__gthread_key_create (__gthread_key_t *key, void (*dtor) (void *)) __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
{ {
/* Solaris 2.5 contains thr_* routines no-op in libc, so test if we actually /* Solaris 2.5 contains thr_* routines no-op in libc, so test if we actually
got a reasonable key value, and if not, fail. */ got a reasonable key value, and if not, fail. */
*key = (__gthread_key_t)-1; *__key = (__gthread_key_t)-1;
if (__gthrw_(thr_keycreate) (key, dtor) != 0 || *key == (__gthread_key_t)-1) if (__gthrw_(thr_keycreate) (__key, __dtor) != 0
|| *__key == (__gthread_key_t)-1)
return -1; return -1;
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_key_delete (__gthread_key_t UNUSED (key)) __gthread_key_delete (__gthread_key_t UNUSED (__key))
{ {
/* Not possible. */ /* Not possible. */
return -1; return -1;
} }
static inline void * static inline void *
__gthread_getspecific (__gthread_key_t key) __gthread_getspecific (__gthread_key_t __key)
{ {
void *ptr; void *__ptr;
if (__gthrw_(thr_getspecific) (key, &ptr) == 0) if (__gthrw_(thr_getspecific) (__key, &__ptr) == 0)
return ptr; return __ptr;
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_setspecific (__gthread_key_t key, const void *ptr) __gthread_setspecific (__gthread_key_t __key, const void *__ptr)
{ {
return __gthrw_(thr_setspecific) (key, (void *) ptr); return __gthrw_(thr_setspecific) (__key, (void *) __ptr);
} }
static inline int static inline int
__gthread_mutex_destroy (__gthread_mutex_t * UNUSED(mutex)) __gthread_mutex_destroy (__gthread_mutex_t * UNUSED(__mutex))
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(mutex_destroy) (mutex); return __gthrw_(mutex_destroy) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_lock (__gthread_mutex_t *mutex) __gthread_mutex_lock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(mutex_lock) (mutex); return __gthrw_(mutex_lock) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_trylock (__gthread_mutex_t *mutex) __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(mutex_trylock) (mutex); return __gthrw_(mutex_trylock) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_unlock (__gthread_mutex_t *mutex) __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthrw_(mutex_unlock) (mutex); return __gthrw_(mutex_unlock) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
{ {
mutex->depth = 0; __mutex->depth = 0;
mutex->owner = (thread_t) 0; __mutex->owner = (thread_t) 0;
return __gthrw_(mutex_init) (&mutex->actual, USYNC_THREAD, 0); return __gthrw_(mutex_init) (&__mutex->actual, USYNC_THREAD, 0);
} }
static inline int static inline int
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
thread_t me = __gthrw_(thr_self) (); thread_t __me = __gthrw_(thr_self) ();
if (mutex->owner != me) if (__mutex->owner != __me)
{ {
__gthrw_(mutex_lock) (&mutex->actual); __gthrw_(mutex_lock) (&__mutex->actual);
mutex->owner = me; __mutex->owner = __me;
} }
mutex->depth++; __mutex->depth++;
} }
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
thread_t me = __gthrw_(thr_self) (); thread_t __me = __gthrw_(thr_self) ();
if (mutex->owner != me) if (__mutex->owner != __me)
{ {
if (__gthrw_(mutex_trylock) (&mutex->actual)) if (__gthrw_(mutex_trylock) (&__mutex->actual))
return 1; return 1;
mutex->owner = me; __mutex->owner = __me;
} }
mutex->depth++; __mutex->depth++;
} }
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
if (--mutex->depth == 0) if (--__mutex->depth == 0)
{ {
mutex->owner = (thread_t) 0; __mutex->owner = (thread_t) 0;
__gthrw_(mutex_unlock) (&mutex->actual); __gthrw_(mutex_unlock) (&__mutex->actual);
} }
} }
return 0; return 0;
......
/* Threads compatibility routines for libgcc2 and libobjc. /* Threads compatibility routines for libgcc2 and libobjc.
Compile this one with gcc. Compile this one with gcc.
Copyright (C) 2004, 2005 Free Software Foundation, Inc. Copyright (C) 2004, 2005, 2008, 2009 Free Software Foundation, Inc.
This file is part of GCC. This file is part of GCC.
...@@ -101,129 +101,130 @@ __gthread_active_p (void) ...@@ -101,129 +101,130 @@ __gthread_active_p (void)
} }
static inline int static inline int
__gthread_once (__gthread_once_t *once, void (*func) (void)) __gthread_once (__gthread_once_t *__once, void (*__func) (void))
{ {
if (__tpf_pthread_active ()) if (__tpf_pthread_active ())
return __gthrw_(pthread_once) (once, func); return __gthrw_(pthread_once) (__once, __func);
else else
return -1; return -1;
} }
static inline int static inline int
__gthread_key_create (__gthread_key_t *key, void (*dtor) (void *)) __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
{ {
if (__tpf_pthread_active ()) if (__tpf_pthread_active ())
return __gthrw_(pthread_key_create) (key, dtor); return __gthrw_(pthread_key_create) (__key, __dtor);
else else
return -1; return -1;
} }
static inline int static inline int
__gthread_key_delete (__gthread_key_t key) __gthread_key_delete (__gthread_key_t __key)
{ {
if (__tpf_pthread_active ()) if (__tpf_pthread_active ())
return __gthrw_(pthread_key_delete) (key); return __gthrw_(pthread_key_delete) (__key);
else else
return -1; return -1;
} }
static inline void * static inline void *
__gthread_getspecific (__gthread_key_t key) __gthread_getspecific (__gthread_key_t __key)
{ {
if (__tpf_pthread_active ()) if (__tpf_pthread_active ())
return __gthrw_(pthread_getspecific) (key); return __gthrw_(pthread_getspecific) (__key);
else else
return NULL; return NULL;
} }
static inline int static inline int
__gthread_setspecific (__gthread_key_t key, const void *ptr) __gthread_setspecific (__gthread_key_t __key, const void *__ptr)
{ {
if (__tpf_pthread_active ()) if (__tpf_pthread_active ())
return __gthrw_(pthread_setspecific) (key, ptr); return __gthrw_(pthread_setspecific) (__key, __ptr);
else else
return -1; return -1;
} }
static inline int static inline int
__gthread_mutex_destroy (__gthread_mutex_t *mutex) __gthread_mutex_destroy (__gthread_mutex_t *__mutex)
{ {
if (__tpf_pthread_active ()) if (__tpf_pthread_active ())
return __gthrw_(pthread_mutex_destroy) (mutex); return __gthrw_(pthread_mutex_destroy) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_lock (__gthread_mutex_t *mutex) __gthread_mutex_lock (__gthread_mutex_t *__mutex)
{ {
if (__tpf_pthread_active ()) if (__tpf_pthread_active ())
return __gthrw_(pthread_mutex_lock) (mutex); return __gthrw_(pthread_mutex_lock) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_trylock (__gthread_mutex_t *mutex) __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
{ {
if (__tpf_pthread_active ()) if (__tpf_pthread_active ())
return __gthrw_(pthread_mutex_trylock) (mutex); return __gthrw_(pthread_mutex_trylock) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_unlock (__gthread_mutex_t *mutex) __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
{ {
if (__tpf_pthread_active ()) if (__tpf_pthread_active ())
return __gthrw_(pthread_mutex_unlock) (mutex); return __gthrw_(pthread_mutex_unlock) (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__tpf_pthread_active ()) if (__tpf_pthread_active ())
return __gthread_mutex_lock (mutex); return __gthread_mutex_lock (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__tpf_pthread_active ()) if (__tpf_pthread_active ())
return __gthread_mutex_trylock (mutex); return __gthread_mutex_trylock (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__tpf_pthread_active ()) if (__tpf_pthread_active ())
return __gthread_mutex_unlock (mutex); return __gthread_mutex_unlock (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
{ {
if (__tpf_pthread_active ()) if (__tpf_pthread_active ())
{ {
pthread_mutexattr_t attr; pthread_mutexattr_t __attr;
int r; int __r;
r = __gthrw_(pthread_mutexattr_init) (&attr); __r = __gthrw_(pthread_mutexattr_init) (&__attr);
if (!r) if (!__r)
r = __gthrw_(pthread_mutexattr_settype) (&attr, PTHREAD_MUTEX_RECURSIVE); __r = __gthrw_(pthread_mutexattr_settype) (&__attr,
if (!r) PTHREAD_MUTEX_RECURSIVE);
r = __gthrw_(pthread_mutex_init) (mutex, &attr); if (!__r)
if (!r) __r = __gthrw_(pthread_mutex_init) (__mutex, &__attr);
r = __gthrw_(pthread_mutexattr_destroy) (&attr); if (!__r)
return r; __r = __gthrw_(pthread_mutexattr_destroy) (&__attr);
return __r;
} }
return 0; return 0;
} }
......
/* Threads compatibility routines for libgcc2 and libobjc for VxWorks. */ /* Threads compatibility routines for libgcc2 and libobjc for VxWorks. */
/* Compile this one with gcc. */ /* Compile this one with gcc. */
/* Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc. /* Copyright (C) 1997, 1999, 2000, 2008, 2009 Free Software Foundation, Inc.
Contributed by Mike Stump <mrs@wrs.com>. Contributed by Mike Stump <mrs@wrs.com>.
This file is part of GCC. This file is part of GCC.
...@@ -131,7 +131,7 @@ __gthread_once_t; ...@@ -131,7 +131,7 @@ __gthread_once_t;
# define __GTHREAD_ONCE_INIT { 0 } # define __GTHREAD_ONCE_INIT { 0 }
#endif #endif
extern int __gthread_once (__gthread_once_t *once, void (*func)(void)); extern int __gthread_once (__gthread_once_t *__once, void (*__func)(void));
/* Thread-specific data requires a great deal of effort, since VxWorks /* Thread-specific data requires a great deal of effort, since VxWorks
is not really set up for it. See config/vxlib.c for the gory is not really set up for it. See config/vxlib.c for the gory
...@@ -140,11 +140,11 @@ extern int __gthread_once (__gthread_once_t *once, void (*func)(void)); ...@@ -140,11 +140,11 @@ extern int __gthread_once (__gthread_once_t *once, void (*func)(void));
typedef unsigned int __gthread_key_t; typedef unsigned int __gthread_key_t;
extern int __gthread_key_create (__gthread_key_t *keyp, void (*dtor)(void *)); extern int __gthread_key_create (__gthread_key_t *__keyp, void (*__dtor)(void *));
extern int __gthread_key_delete (__gthread_key_t key); extern int __gthread_key_delete (__gthread_key_t __key);
extern void *__gthread_getspecific (__gthread_key_t key); extern void *__gthread_getspecific (__gthread_key_t __key);
extern int __gthread_setspecific (__gthread_key_t key, void *ptr); extern int __gthread_setspecific (__gthread_key_t __key, void *__ptr);
#undef UNUSED #undef UNUSED
......
/* Threads compatibility routines for libgcc2 and libobjc. */ /* Threads compatibility routines for libgcc2 and libobjc. */
/* Compile this one with gcc. */ /* Compile this one with gcc. */
/* Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005 /* Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005, 2008, 2009
Free Software Foundation, Inc. Free Software Foundation, Inc.
Contributed by Mumit Khan <khan@xraylith.wisc.edu>. Contributed by Mumit Khan <khan@xraylith.wisc.edu>.
...@@ -381,14 +381,14 @@ extern int __mingwthr_key_dtor (unsigned long, void (*) (void *)); ...@@ -381,14 +381,14 @@ extern int __mingwthr_key_dtor (unsigned long, void (*) (void *));
gthread_mutex_try_lock is not referenced by libgcc or libstdc++. */ gthread_mutex_try_lock is not referenced by libgcc or libstdc++. */
#ifdef __GTHREAD_I486_INLINE_LOCK_PRIMITIVES #ifdef __GTHREAD_I486_INLINE_LOCK_PRIMITIVES
static inline long static inline long
__gthr_i486_lock_cmp_xchg(long *dest, long xchg, long comperand) __gthr_i486_lock_cmp_xchg(long *__dest, long __xchg, long __comperand)
{ {
long result; long result;
__asm__ __volatile__ ("\n\ __asm__ __volatile__ ("\n\
lock\n\ lock\n\
cmpxchg{l} {%4, %1|%1, %4}\n" cmpxchg{l} {%4, %1|%1, %4}\n"
: "=a" (result), "=m" (*dest) : "=a" (result), "=m" (*__dest)
: "0" (comperand), "m" (*dest), "r" (xchg) : "0" (__comperand), "m" (*__dest), "r" (__xchg)
: "cc"); : "cc");
return result; return result;
} }
...@@ -431,106 +431,106 @@ extern int __gthr_win32_recursive_mutex_unlock (__gthread_recursive_mutex_t *); ...@@ -431,106 +431,106 @@ extern int __gthr_win32_recursive_mutex_unlock (__gthread_recursive_mutex_t *);
extern void __gthr_win32_mutex_destroy (__gthread_mutex_t *); extern void __gthr_win32_mutex_destroy (__gthread_mutex_t *);
static inline int static inline int
__gthread_once (__gthread_once_t *once, void (*func) (void)) __gthread_once (__gthread_once_t *__once, void (*__func) (void))
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthr_win32_once (once, func); return __gthr_win32_once (__once, __func);
else else
return -1; return -1;
} }
static inline int static inline int
__gthread_key_create (__gthread_key_t *key, void (*dtor) (void *)) __gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *))
{ {
return __gthr_win32_key_create (key, dtor); return __gthr_win32_key_create (__key, __dtor);
} }
static inline int static inline int
__gthread_key_delete (__gthread_key_t key) __gthread_key_delete (__gthread_key_t __key)
{ {
return __gthr_win32_key_delete (key); return __gthr_win32_key_delete (__key);
} }
static inline void * static inline void *
__gthread_getspecific (__gthread_key_t key) __gthread_getspecific (__gthread_key_t __key)
{ {
return __gthr_win32_getspecific (key); return __gthr_win32_getspecific (__key);
} }
static inline int static inline int
__gthread_setspecific (__gthread_key_t key, const void *ptr) __gthread_setspecific (__gthread_key_t __key, const void *__ptr)
{ {
return __gthr_win32_setspecific (key, ptr); return __gthr_win32_setspecific (__key, __ptr);
} }
static inline void static inline void
__gthread_mutex_init_function (__gthread_mutex_t *mutex) __gthread_mutex_init_function (__gthread_mutex_t *__mutex)
{ {
__gthr_win32_mutex_init_function (mutex); __gthr_win32_mutex_init_function (__mutex);
} }
static inline void static inline void
__gthread_mutex_destroy (__gthread_mutex_t *mutex) __gthread_mutex_destroy (__gthread_mutex_t *__mutex)
{ {
__gthr_win32_mutex_destroy (mutex); __gthr_win32_mutex_destroy (__mutex);
} }
static inline int static inline int
__gthread_mutex_lock (__gthread_mutex_t *mutex) __gthread_mutex_lock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthr_win32_mutex_lock (mutex); return __gthr_win32_mutex_lock (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_trylock (__gthread_mutex_t *mutex) __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthr_win32_mutex_trylock (mutex); return __gthr_win32_mutex_trylock (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_mutex_unlock (__gthread_mutex_t *mutex) __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthr_win32_mutex_unlock (mutex); return __gthr_win32_mutex_unlock (__mutex);
else else
return 0; return 0;
} }
static inline void static inline void
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
{ {
__gthr_win32_recursive_mutex_init_function (mutex); __gthr_win32_recursive_mutex_init_function (__mutex);
} }
static inline int static inline int
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthr_win32_recursive_mutex_lock (mutex); return __gthr_win32_recursive_mutex_lock (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthr_win32_recursive_mutex_trylock (mutex); return __gthr_win32_recursive_mutex_trylock (__mutex);
else else
return 0; return 0;
} }
static inline int static inline int
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
return __gthr_win32_recursive_mutex_unlock (mutex); return __gthr_win32_recursive_mutex_unlock (__mutex);
else else
return 0; return 0;
} }
...@@ -541,19 +541,19 @@ __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex) ...@@ -541,19 +541,19 @@ __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex)
#include <errno.h> #include <errno.h>
static inline int static inline int
__gthread_once (__gthread_once_t *once, void (*func) (void)) __gthread_once (__gthread_once_t *__once, void (*__func) (void))
{ {
if (! __gthread_active_p ()) if (! __gthread_active_p ())
return -1; return -1;
else if (once == NULL || func == NULL) else if (__once == NULL || __func == NULL)
return EINVAL; return EINVAL;
if (! once->done) if (! __once->done)
{ {
if (InterlockedIncrement (&(once->started)) == 0) if (InterlockedIncrement (&(__once->started)) == 0)
{ {
(*func) (); (*__func) ();
once->done = TRUE; __once->done = TRUE;
} }
else else
{ {
...@@ -562,7 +562,7 @@ __gthread_once (__gthread_once_t *once, void (*func) (void)) ...@@ -562,7 +562,7 @@ __gthread_once (__gthread_once_t *once, void (*func) (void))
does become an issue, the solution is to use an Event that does become an issue, the solution is to use an Event that
we wait on here (and set above), but that implies a place to we wait on here (and set above), but that implies a place to
create the event before this routine is called. */ create the event before this routine is called. */
while (! once->done) while (! __once->done)
Sleep (0); Sleep (0);
} }
} }
...@@ -574,150 +574,150 @@ __gthread_once (__gthread_once_t *once, void (*func) (void)) ...@@ -574,150 +574,150 @@ __gthread_once (__gthread_once_t *once, void (*func) (void))
leaks, especially in threaded applications making extensive use of leaks, especially in threaded applications making extensive use of
C++ EH. Mingw uses a thread-support DLL to work-around this problem. */ C++ EH. Mingw uses a thread-support DLL to work-around this problem. */
static inline int static inline int
__gthread_key_create (__gthread_key_t *key, __gthread_key_create (__gthread_key_t *__key,
void (*dtor) (void *) __attribute__((unused))) void (*__dtor) (void *) __attribute__((unused)))
{ {
int status = 0; int __status = 0;
DWORD tls_index = TlsAlloc (); DWORD __tls_index = TlsAlloc ();
if (tls_index != 0xFFFFFFFF) if (__tls_index != 0xFFFFFFFF)
{ {
*key = tls_index; *__key = __tls_index;
#ifdef MINGW32_SUPPORTS_MT_EH #ifdef MINGW32_SUPPORTS_MT_EH
/* Mingw runtime will run the dtors in reverse order for each thread /* Mingw runtime will run the dtors in reverse order for each thread
when the thread exits. */ when the thread exits. */
status = __mingwthr_key_dtor (*key, dtor); __status = __mingwthr_key_dtor (*__key, __dtor);
#endif #endif
} }
else else
status = (int) GetLastError (); __status = (int) GetLastError ();
return status; return __status;
} }
static inline int static inline int
__gthread_key_delete (__gthread_key_t key) __gthread_key_delete (__gthread_key_t __key)
{ {
return (TlsFree (key) != 0) ? 0 : (int) GetLastError (); return (TlsFree (__key) != 0) ? 0 : (int) GetLastError ();
} }
static inline void * static inline void *
__gthread_getspecific (__gthread_key_t key) __gthread_getspecific (__gthread_key_t __key)
{ {
DWORD lasterror; DWORD __lasterror;
void *ptr; void *__ptr;
lasterror = GetLastError (); __lasterror = GetLastError ();
ptr = TlsGetValue (key); __ptr = TlsGetValue (__key);
SetLastError (lasterror); SetLastError (__lasterror);
return ptr; return __ptr;
} }
static inline int static inline int
__gthread_setspecific (__gthread_key_t key, const void *ptr) __gthread_setspecific (__gthread_key_t __key, const void *__ptr)
{ {
if (TlsSetValue (key, CONST_CAST2(void *, const void *, ptr)) != 0) if (TlsSetValue (__key, CONST_CAST2(void *, const void *, __ptr)) != 0)
return 0; return 0;
else else
return GetLastError (); return GetLastError ();
} }
static inline void static inline void
__gthread_mutex_init_function (__gthread_mutex_t *mutex) __gthread_mutex_init_function (__gthread_mutex_t *__mutex)
{ {
mutex->counter = -1; __mutex->counter = -1;
mutex->sema = CreateSemaphore (NULL, 0, 65535, NULL); __mutex->sema = CreateSemaphore (NULL, 0, 65535, NULL);
} }
static inline void static inline void
__gthread_mutex_destroy (__gthread_mutex_t *mutex) __gthread_mutex_destroy (__gthread_mutex_t *__mutex)
{ {
CloseHandle ((HANDLE) mutex->sema); CloseHandle ((HANDLE) __mutex->sema);
} }
static inline int static inline int
__gthread_mutex_lock (__gthread_mutex_t *mutex) __gthread_mutex_lock (__gthread_mutex_t *__mutex)
{ {
int status = 0; int __status = 0;
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
if (InterlockedIncrement (&mutex->counter) == 0 || if (InterlockedIncrement (&__mutex->counter) == 0 ||
WaitForSingleObject (mutex->sema, INFINITE) == WAIT_OBJECT_0) WaitForSingleObject (__mutex->sema, INFINITE) == WAIT_OBJECT_0)
status = 0; __status = 0;
else else
{ {
/* WaitForSingleObject returns WAIT_FAILED, and we can only do /* WaitForSingleObject returns WAIT_FAILED, and we can only do
some best-effort cleanup here. */ some best-effort cleanup here. */
InterlockedDecrement (&mutex->counter); InterlockedDecrement (&__mutex->counter);
status = 1; __status = 1;
} }
} }
return status; return __status;
} }
static inline int static inline int
__gthread_mutex_trylock (__gthread_mutex_t *mutex) __gthread_mutex_trylock (__gthread_mutex_t *__mutex)
{ {
int status = 0; int __status = 0;
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
if (__GTHR_W32_InterlockedCompareExchange (&mutex->counter, 0, -1) < 0) if (__GTHR_W32_InterlockedCompareExchange (&__mutex->counter, 0, -1) < 0)
status = 0; __status = 0;
else else
status = 1; __status = 1;
} }
return status; return __status;
} }
static inline int static inline int
__gthread_mutex_unlock (__gthread_mutex_t *mutex) __gthread_mutex_unlock (__gthread_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
if (InterlockedDecrement (&mutex->counter) >= 0) if (InterlockedDecrement (&__mutex->counter) >= 0)
return ReleaseSemaphore (mutex->sema, 1, NULL) ? 0 : 1; return ReleaseSemaphore (__mutex->sema, 1, NULL) ? 0 : 1;
} }
return 0; return 0;
} }
static inline void static inline void
__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t *__mutex)
{ {
mutex->counter = -1; __mutex->counter = -1;
mutex->depth = 0; __mutex->depth = 0;
mutex->owner = 0; __mutex->owner = 0;
mutex->sema = CreateSemaphore (NULL, 0, 65535, NULL); __mutex->sema = CreateSemaphore (NULL, 0, 65535, NULL);
} }
static inline int static inline int
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
DWORD me = GetCurrentThreadId(); DWORD __me = GetCurrentThreadId();
if (InterlockedIncrement (&mutex->counter) == 0) if (InterlockedIncrement (&__mutex->counter) == 0)
{ {
mutex->depth = 1; __mutex->depth = 1;
mutex->owner = me; __mutex->owner = __me;
} }
else if (mutex->owner == me) else if (__mutex->owner == __me)
{ {
InterlockedDecrement (&mutex->counter); InterlockedDecrement (&__mutex->counter);
++(mutex->depth); ++(__mutex->depth);
} }
else if (WaitForSingleObject (mutex->sema, INFINITE) == WAIT_OBJECT_0) else if (WaitForSingleObject (__mutex->sema, INFINITE) == WAIT_OBJECT_0)
{ {
mutex->depth = 1; __mutex->depth = 1;
mutex->owner = me; __mutex->owner = __me;
} }
else else
{ {
/* WaitForSingleObject returns WAIT_FAILED, and we can only do /* WaitForSingleObject returns WAIT_FAILED, and we can only do
some best-effort cleanup here. */ some best-effort cleanup here. */
InterlockedDecrement (&mutex->counter); InterlockedDecrement (&__mutex->counter);
return 1; return 1;
} }
} }
...@@ -725,18 +725,18 @@ __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex) ...@@ -725,18 +725,18 @@ __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex)
} }
static inline int static inline int
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
DWORD me = GetCurrentThreadId(); DWORD __me = GetCurrentThreadId();
if (__GTHR_W32_InterlockedCompareExchange (&mutex->counter, 0, -1) < 0) if (__GTHR_W32_InterlockedCompareExchange (&__mutex->counter, 0, -1) < 0)
{ {
mutex->depth = 1; __mutex->depth = 1;
mutex->owner = me; __mutex->owner = __me;
} }
else if (mutex->owner == me) else if (__mutex->owner == __me)
++(mutex->depth); ++(__mutex->depth);
else else
return 1; return 1;
} }
...@@ -744,17 +744,17 @@ __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex) ...@@ -744,17 +744,17 @@ __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex)
} }
static inline int static inline int
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex) __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
{ {
if (__gthread_active_p ()) if (__gthread_active_p ())
{ {
--(mutex->depth); --(__mutex->depth);
if (mutex->depth == 0) if (__mutex->depth == 0)
{ {
mutex->owner = 0; __mutex->owner = 0;
if (InterlockedDecrement (&mutex->counter) >= 0) if (InterlockedDecrement (&__mutex->counter) >= 0)
return ReleaseSemaphore (mutex->sema, 1, NULL) ? 0 : 1; return ReleaseSemaphore (__mutex->sema, 1, NULL) ? 0 : 1;
} }
} }
return 0; return 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment