#ifndef GCC_GTHR_RTEMS_H
#define GCC_GTHR_RTEMS_H
#ifdef __cplusplus
extern "C" {
#endif
#define __GTHREADS 1
#define __GTHREAD_ONCE_INIT 0
#define __GTHREAD_MUTEX_INIT 0
#define __GTHREAD_MUTEX_INIT_FUNCTION rtems_gxx_mutex_init
#define __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION rtems_gxx_recursive_mutex_init
typedef void *__gthread_key_t;
typedef int __gthread_once_t;
typedef void *__gthread_mutex_t;
typedef void *__gthread_recursive_mutex_t;
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_delete (__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 void rtems_gxx_mutex_init (__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_unlock (__gthread_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_trylock (__gthread_recursive_mutex_t *mutex);
extern int rtems_gxx_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex);
static inline int
__gthread_active_p (void)
{
return 1;
}
static inline int
__gthread_once (__gthread_once_t *once, void (*func) (void))
{
return rtems_gxx_once( once, func );
}
static inline int
__gthread_key_create (__gthread_key_t *key, void (*dtor) (void *))
{
return rtems_gxx_key_create( key, dtor );
}
static inline int
__gthread_key_delete (__gthread_key_t key)
{
return rtems_gxx_key_delete (key);
}
static inline void *
__gthread_getspecific (__gthread_key_t key)
{
return rtems_gxx_getspecific (key);
}
static inline int
__gthread_setspecific (__gthread_key_t key, const void *ptr)
{
return rtems_gxx_setspecific (key, ptr);
}
static inline int
__gthread_mutex_lock (__gthread_mutex_t *mutex)
{
return rtems_gxx_mutex_lock (mutex);
}
static inline int
__gthread_mutex_trylock (__gthread_mutex_t *mutex)
{
return rtems_gxx_mutex_trylock (mutex);
}
static inline int
__gthread_mutex_unlock (__gthread_mutex_t *mutex)
{
return rtems_gxx_mutex_unlock( mutex );
}
static inline int
__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *mutex)
{
return rtems_gxx_recursive_mutex_lock (mutex);
}
static inline int
__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *mutex)
{
return rtems_gxx_recursive_mutex_trylock (mutex);
}
static inline int
__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *mutex)
{
return rtems_gxx_recursive_mutex_unlock( mutex );
}
#ifdef __cplusplus
}
#endif
#endif