xref: /minix3/external/gpl3/gcc/lib/libstdc++-v3/arch/earmv6hf/gthr-single.h (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
184d9c625SLionel Sambuc /* This file is automatically generated.  DO NOT EDIT! */
2*0a6a1f1dSLionel Sambuc /* Generated from: NetBSD: mknative-gcc,v 1.70 2013/05/05 07:11:34 skrll Exp  */
3*0a6a1f1dSLionel Sambuc /* Generated from: NetBSD: mknative.common,v 1.8 2006/05/26 19:17:21 mrg Exp  */
484d9c625SLionel Sambuc 
584d9c625SLionel Sambuc /* Threads compatibility routines for libgcc2 and libobjc.  */
684d9c625SLionel Sambuc /* Compile this one with gcc.  */
7*0a6a1f1dSLionel Sambuc /* Copyright (C) 1997-2013 Free Software Foundation, Inc.
884d9c625SLionel Sambuc 
984d9c625SLionel Sambuc This file is part of GCC.
1084d9c625SLionel Sambuc 
1184d9c625SLionel Sambuc GCC is free software; you can redistribute it and/or modify it under
1284d9c625SLionel Sambuc the terms of the GNU General Public License as published by the Free
1384d9c625SLionel Sambuc Software Foundation; either version 3, or (at your option) any later
1484d9c625SLionel Sambuc version.
1584d9c625SLionel Sambuc 
1684d9c625SLionel Sambuc GCC is distributed in the hope that it will be useful, but WITHOUT ANY
1784d9c625SLionel Sambuc WARRANTY; without even the implied warranty of MERCHANTABILITY or
1884d9c625SLionel Sambuc FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
1984d9c625SLionel Sambuc for more details.
2084d9c625SLionel Sambuc 
2184d9c625SLionel Sambuc Under Section 7 of GPL version 3, you are granted additional
2284d9c625SLionel Sambuc permissions described in the GCC Runtime Library Exception, version
2384d9c625SLionel Sambuc 3.1, as published by the Free Software Foundation.
2484d9c625SLionel Sambuc 
2584d9c625SLionel Sambuc You should have received a copy of the GNU General Public License and
2684d9c625SLionel Sambuc a copy of the GCC Runtime Library Exception along with this program;
2784d9c625SLionel Sambuc see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
2884d9c625SLionel Sambuc <http://www.gnu.org/licenses/>.  */
2984d9c625SLionel Sambuc 
3084d9c625SLionel Sambuc #ifndef _GLIBCXX_GCC_GTHR_SINGLE_H
3184d9c625SLionel Sambuc #define _GLIBCXX_GCC_GTHR_SINGLE_H
3284d9c625SLionel Sambuc 
3384d9c625SLionel Sambuc /* Just provide compatibility for mutex handling.  */
3484d9c625SLionel Sambuc 
3584d9c625SLionel Sambuc typedef int __gthread_key_t;
3684d9c625SLionel Sambuc typedef int __gthread_once_t;
3784d9c625SLionel Sambuc typedef int __gthread_mutex_t;
3884d9c625SLionel Sambuc typedef int __gthread_recursive_mutex_t;
3984d9c625SLionel Sambuc 
4084d9c625SLionel Sambuc #define __GTHREAD_ONCE_INIT 0
4184d9c625SLionel Sambuc #define __GTHREAD_MUTEX_INIT 0
42*0a6a1f1dSLionel Sambuc #define __GTHREAD_MUTEX_INIT_FUNCTION(mx)
4384d9c625SLionel Sambuc #define __GTHREAD_RECURSIVE_MUTEX_INIT 0
4484d9c625SLionel Sambuc 
4584d9c625SLionel Sambuc #define _GLIBCXX_UNUSED __attribute__((unused))
4684d9c625SLionel Sambuc 
4784d9c625SLionel Sambuc #ifdef _LIBOBJC
4884d9c625SLionel Sambuc 
4984d9c625SLionel Sambuc /* Thread local storage for a single thread */
5084d9c625SLionel Sambuc static void *thread_local_storage = NULL;
5184d9c625SLionel Sambuc 
5284d9c625SLionel Sambuc /* Backend initialization functions */
5384d9c625SLionel Sambuc 
5484d9c625SLionel Sambuc /* Initialize the threads subsystem.  */
5584d9c625SLionel Sambuc static inline int
__gthread_objc_init_thread_system(void)5684d9c625SLionel Sambuc __gthread_objc_init_thread_system (void)
5784d9c625SLionel Sambuc {
5884d9c625SLionel Sambuc   /* No thread support available */
5984d9c625SLionel Sambuc   return -1;
6084d9c625SLionel Sambuc }
6184d9c625SLionel Sambuc 
6284d9c625SLionel Sambuc /* Close the threads subsystem.  */
6384d9c625SLionel Sambuc static inline int
__gthread_objc_close_thread_system(void)6484d9c625SLionel Sambuc __gthread_objc_close_thread_system (void)
6584d9c625SLionel Sambuc {
6684d9c625SLionel Sambuc   /* No thread support available */
6784d9c625SLionel Sambuc   return -1;
6884d9c625SLionel Sambuc }
6984d9c625SLionel Sambuc 
7084d9c625SLionel Sambuc /* Backend thread functions */
7184d9c625SLionel Sambuc 
7284d9c625SLionel Sambuc /* Create a new thread of execution.  */
7384d9c625SLionel Sambuc static inline objc_thread_t
__gthread_objc_thread_detach(void (* func)(void *),void * arg _GLIBCXX_UNUSED)7484d9c625SLionel Sambuc __gthread_objc_thread_detach (void (* func)(void *), void * arg _GLIBCXX_UNUSED)
7584d9c625SLionel Sambuc {
7684d9c625SLionel Sambuc   /* No thread support available */
7784d9c625SLionel Sambuc   return NULL;
7884d9c625SLionel Sambuc }
7984d9c625SLionel Sambuc 
8084d9c625SLionel Sambuc /* Set the current thread's priority.  */
8184d9c625SLionel Sambuc static inline int
__gthread_objc_thread_set_priority(int priority _GLIBCXX_UNUSED)8284d9c625SLionel Sambuc __gthread_objc_thread_set_priority (int priority _GLIBCXX_UNUSED)
8384d9c625SLionel Sambuc {
8484d9c625SLionel Sambuc   /* No thread support available */
8584d9c625SLionel Sambuc   return -1;
8684d9c625SLionel Sambuc }
8784d9c625SLionel Sambuc 
8884d9c625SLionel Sambuc /* Return the current thread's priority.  */
8984d9c625SLionel Sambuc static inline int
__gthread_objc_thread_get_priority(void)9084d9c625SLionel Sambuc __gthread_objc_thread_get_priority (void)
9184d9c625SLionel Sambuc {
9284d9c625SLionel Sambuc   return OBJC_THREAD_INTERACTIVE_PRIORITY;
9384d9c625SLionel Sambuc }
9484d9c625SLionel Sambuc 
9584d9c625SLionel Sambuc /* Yield our process time to another thread.  */
9684d9c625SLionel Sambuc static inline void
__gthread_objc_thread_yield(void)9784d9c625SLionel Sambuc __gthread_objc_thread_yield (void)
9884d9c625SLionel Sambuc {
9984d9c625SLionel Sambuc   return;
10084d9c625SLionel Sambuc }
10184d9c625SLionel Sambuc 
10284d9c625SLionel Sambuc /* Terminate the current thread.  */
10384d9c625SLionel Sambuc static inline int
__gthread_objc_thread_exit(void)10484d9c625SLionel Sambuc __gthread_objc_thread_exit (void)
10584d9c625SLionel Sambuc {
10684d9c625SLionel Sambuc   /* No thread support available */
10784d9c625SLionel Sambuc   /* Should we really exit the program */
10884d9c625SLionel Sambuc   /* exit (&__objc_thread_exit_status); */
10984d9c625SLionel Sambuc   return -1;
11084d9c625SLionel Sambuc }
11184d9c625SLionel Sambuc 
11284d9c625SLionel Sambuc /* Returns an integer value which uniquely describes a thread.  */
11384d9c625SLionel Sambuc static inline objc_thread_t
__gthread_objc_thread_id(void)11484d9c625SLionel Sambuc __gthread_objc_thread_id (void)
11584d9c625SLionel Sambuc {
11684d9c625SLionel Sambuc   /* No thread support, use 1.  */
11784d9c625SLionel Sambuc   return (objc_thread_t) 1;
11884d9c625SLionel Sambuc }
11984d9c625SLionel Sambuc 
12084d9c625SLionel Sambuc /* Sets the thread's local storage pointer.  */
12184d9c625SLionel Sambuc static inline int
__gthread_objc_thread_set_data(void * value)12284d9c625SLionel Sambuc __gthread_objc_thread_set_data (void *value)
12384d9c625SLionel Sambuc {
12484d9c625SLionel Sambuc   thread_local_storage = value;
12584d9c625SLionel Sambuc   return 0;
12684d9c625SLionel Sambuc }
12784d9c625SLionel Sambuc 
12884d9c625SLionel Sambuc /* Returns the thread's local storage pointer.  */
12984d9c625SLionel Sambuc static inline void *
__gthread_objc_thread_get_data(void)13084d9c625SLionel Sambuc __gthread_objc_thread_get_data (void)
13184d9c625SLionel Sambuc {
13284d9c625SLionel Sambuc   return thread_local_storage;
13384d9c625SLionel Sambuc }
13484d9c625SLionel Sambuc 
13584d9c625SLionel Sambuc /* Backend mutex functions */
13684d9c625SLionel Sambuc 
13784d9c625SLionel Sambuc /* Allocate a mutex.  */
13884d9c625SLionel Sambuc static inline int
__gthread_objc_mutex_allocate(objc_mutex_t mutex _GLIBCXX_UNUSED)13984d9c625SLionel Sambuc __gthread_objc_mutex_allocate (objc_mutex_t mutex _GLIBCXX_UNUSED)
14084d9c625SLionel Sambuc {
14184d9c625SLionel Sambuc   return 0;
14284d9c625SLionel Sambuc }
14384d9c625SLionel Sambuc 
14484d9c625SLionel Sambuc /* Deallocate a mutex.  */
14584d9c625SLionel Sambuc static inline int
__gthread_objc_mutex_deallocate(objc_mutex_t mutex _GLIBCXX_UNUSED)14684d9c625SLionel Sambuc __gthread_objc_mutex_deallocate (objc_mutex_t mutex _GLIBCXX_UNUSED)
14784d9c625SLionel Sambuc {
14884d9c625SLionel Sambuc   return 0;
14984d9c625SLionel Sambuc }
15084d9c625SLionel Sambuc 
15184d9c625SLionel Sambuc /* Grab a lock on a mutex.  */
15284d9c625SLionel Sambuc static inline int
__gthread_objc_mutex_lock(objc_mutex_t mutex _GLIBCXX_UNUSED)15384d9c625SLionel Sambuc __gthread_objc_mutex_lock (objc_mutex_t mutex _GLIBCXX_UNUSED)
15484d9c625SLionel Sambuc {
15584d9c625SLionel Sambuc   /* There can only be one thread, so we always get the lock */
15684d9c625SLionel Sambuc   return 0;
15784d9c625SLionel Sambuc }
15884d9c625SLionel Sambuc 
15984d9c625SLionel Sambuc /* Try to grab a lock on a mutex.  */
16084d9c625SLionel Sambuc static inline int
__gthread_objc_mutex_trylock(objc_mutex_t mutex _GLIBCXX_UNUSED)16184d9c625SLionel Sambuc __gthread_objc_mutex_trylock (objc_mutex_t mutex _GLIBCXX_UNUSED)
16284d9c625SLionel Sambuc {
16384d9c625SLionel Sambuc   /* There can only be one thread, so we always get the lock */
16484d9c625SLionel Sambuc   return 0;
16584d9c625SLionel Sambuc }
16684d9c625SLionel Sambuc 
16784d9c625SLionel Sambuc /* Unlock the mutex */
16884d9c625SLionel Sambuc static inline int
__gthread_objc_mutex_unlock(objc_mutex_t mutex _GLIBCXX_UNUSED)16984d9c625SLionel Sambuc __gthread_objc_mutex_unlock (objc_mutex_t mutex _GLIBCXX_UNUSED)
17084d9c625SLionel Sambuc {
17184d9c625SLionel Sambuc   return 0;
17284d9c625SLionel Sambuc }
17384d9c625SLionel Sambuc 
17484d9c625SLionel Sambuc /* Backend condition mutex functions */
17584d9c625SLionel Sambuc 
17684d9c625SLionel Sambuc /* Allocate a condition.  */
17784d9c625SLionel Sambuc static inline int
__gthread_objc_condition_allocate(objc_condition_t condition _GLIBCXX_UNUSED)17884d9c625SLionel Sambuc __gthread_objc_condition_allocate (objc_condition_t condition _GLIBCXX_UNUSED)
17984d9c625SLionel Sambuc {
18084d9c625SLionel Sambuc   return 0;
18184d9c625SLionel Sambuc }
18284d9c625SLionel Sambuc 
18384d9c625SLionel Sambuc /* Deallocate a condition.  */
18484d9c625SLionel Sambuc static inline int
__gthread_objc_condition_deallocate(objc_condition_t condition _GLIBCXX_UNUSED)18584d9c625SLionel Sambuc __gthread_objc_condition_deallocate (objc_condition_t condition _GLIBCXX_UNUSED)
18684d9c625SLionel Sambuc {
18784d9c625SLionel Sambuc   return 0;
18884d9c625SLionel Sambuc }
18984d9c625SLionel Sambuc 
19084d9c625SLionel Sambuc /* Wait on the condition */
19184d9c625SLionel Sambuc static inline int
__gthread_objc_condition_wait(objc_condition_t condition _GLIBCXX_UNUSED,objc_mutex_t mutex _GLIBCXX_UNUSED)19284d9c625SLionel Sambuc __gthread_objc_condition_wait (objc_condition_t condition _GLIBCXX_UNUSED,
19384d9c625SLionel Sambuc 			       objc_mutex_t mutex _GLIBCXX_UNUSED)
19484d9c625SLionel Sambuc {
19584d9c625SLionel Sambuc   return 0;
19684d9c625SLionel Sambuc }
19784d9c625SLionel Sambuc 
19884d9c625SLionel Sambuc /* Wake up all threads waiting on this condition.  */
19984d9c625SLionel Sambuc static inline int
__gthread_objc_condition_broadcast(objc_condition_t condition _GLIBCXX_UNUSED)20084d9c625SLionel Sambuc __gthread_objc_condition_broadcast (objc_condition_t condition _GLIBCXX_UNUSED)
20184d9c625SLionel Sambuc {
20284d9c625SLionel Sambuc   return 0;
20384d9c625SLionel Sambuc }
20484d9c625SLionel Sambuc 
20584d9c625SLionel Sambuc /* Wake up one thread waiting on this condition.  */
20684d9c625SLionel Sambuc static inline int
__gthread_objc_condition_signal(objc_condition_t condition _GLIBCXX_UNUSED)20784d9c625SLionel Sambuc __gthread_objc_condition_signal (objc_condition_t condition _GLIBCXX_UNUSED)
20884d9c625SLionel Sambuc {
20984d9c625SLionel Sambuc   return 0;
21084d9c625SLionel Sambuc }
21184d9c625SLionel Sambuc 
21284d9c625SLionel Sambuc #else /* _LIBOBJC */
21384d9c625SLionel Sambuc 
21484d9c625SLionel Sambuc static inline int
__gthread_active_p(void)21584d9c625SLionel Sambuc __gthread_active_p (void)
21684d9c625SLionel Sambuc {
21784d9c625SLionel Sambuc   return 0;
21884d9c625SLionel Sambuc }
21984d9c625SLionel Sambuc 
22084d9c625SLionel Sambuc static inline int
__gthread_once(__gthread_once_t * __once _GLIBCXX_UNUSED,void (* __func)(void)_GLIBCXX_UNUSED)22184d9c625SLionel Sambuc __gthread_once (__gthread_once_t *__once _GLIBCXX_UNUSED, void (*__func) (void) _GLIBCXX_UNUSED)
22284d9c625SLionel Sambuc {
22384d9c625SLionel Sambuc   return 0;
22484d9c625SLionel Sambuc }
22584d9c625SLionel Sambuc 
22684d9c625SLionel Sambuc static inline int _GLIBCXX_UNUSED
__gthread_key_create(__gthread_key_t * __key _GLIBCXX_UNUSED,void (* __func)(void *)_GLIBCXX_UNUSED)22784d9c625SLionel Sambuc __gthread_key_create (__gthread_key_t *__key _GLIBCXX_UNUSED, void (*__func) (void *) _GLIBCXX_UNUSED)
22884d9c625SLionel Sambuc {
22984d9c625SLionel Sambuc   return 0;
23084d9c625SLionel Sambuc }
23184d9c625SLionel Sambuc 
23284d9c625SLionel Sambuc static int _GLIBCXX_UNUSED
__gthread_key_delete(__gthread_key_t __key _GLIBCXX_UNUSED)23384d9c625SLionel Sambuc __gthread_key_delete (__gthread_key_t __key _GLIBCXX_UNUSED)
23484d9c625SLionel Sambuc {
23584d9c625SLionel Sambuc   return 0;
23684d9c625SLionel Sambuc }
23784d9c625SLionel Sambuc 
23884d9c625SLionel Sambuc static inline void *
__gthread_getspecific(__gthread_key_t __key _GLIBCXX_UNUSED)23984d9c625SLionel Sambuc __gthread_getspecific (__gthread_key_t __key _GLIBCXX_UNUSED)
24084d9c625SLionel Sambuc {
24184d9c625SLionel Sambuc   return 0;
24284d9c625SLionel Sambuc }
24384d9c625SLionel Sambuc 
24484d9c625SLionel Sambuc static inline int
__gthread_setspecific(__gthread_key_t __key _GLIBCXX_UNUSED,const void * __v _GLIBCXX_UNUSED)24584d9c625SLionel Sambuc __gthread_setspecific (__gthread_key_t __key _GLIBCXX_UNUSED, const void *__v _GLIBCXX_UNUSED)
24684d9c625SLionel Sambuc {
24784d9c625SLionel Sambuc   return 0;
24884d9c625SLionel Sambuc }
24984d9c625SLionel Sambuc 
25084d9c625SLionel Sambuc static inline int
__gthread_mutex_destroy(__gthread_mutex_t * __mutex _GLIBCXX_UNUSED)25184d9c625SLionel Sambuc __gthread_mutex_destroy (__gthread_mutex_t *__mutex _GLIBCXX_UNUSED)
25284d9c625SLionel Sambuc {
25384d9c625SLionel Sambuc   return 0;
25484d9c625SLionel Sambuc }
25584d9c625SLionel Sambuc 
25684d9c625SLionel Sambuc static inline int
__gthread_mutex_lock(__gthread_mutex_t * __mutex _GLIBCXX_UNUSED)25784d9c625SLionel Sambuc __gthread_mutex_lock (__gthread_mutex_t *__mutex _GLIBCXX_UNUSED)
25884d9c625SLionel Sambuc {
25984d9c625SLionel Sambuc   return 0;
26084d9c625SLionel Sambuc }
26184d9c625SLionel Sambuc 
26284d9c625SLionel Sambuc static inline int
__gthread_mutex_trylock(__gthread_mutex_t * __mutex _GLIBCXX_UNUSED)26384d9c625SLionel Sambuc __gthread_mutex_trylock (__gthread_mutex_t *__mutex _GLIBCXX_UNUSED)
26484d9c625SLionel Sambuc {
26584d9c625SLionel Sambuc   return 0;
26684d9c625SLionel Sambuc }
26784d9c625SLionel Sambuc 
26884d9c625SLionel Sambuc static inline int
__gthread_mutex_unlock(__gthread_mutex_t * __mutex _GLIBCXX_UNUSED)26984d9c625SLionel Sambuc __gthread_mutex_unlock (__gthread_mutex_t *__mutex _GLIBCXX_UNUSED)
27084d9c625SLionel Sambuc {
27184d9c625SLionel Sambuc   return 0;
27284d9c625SLionel Sambuc }
27384d9c625SLionel Sambuc 
27484d9c625SLionel Sambuc static inline int
__gthread_recursive_mutex_lock(__gthread_recursive_mutex_t * __mutex)27584d9c625SLionel Sambuc __gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex)
27684d9c625SLionel Sambuc {
27784d9c625SLionel Sambuc   return __gthread_mutex_lock (__mutex);
27884d9c625SLionel Sambuc }
27984d9c625SLionel Sambuc 
28084d9c625SLionel Sambuc static inline int
__gthread_recursive_mutex_trylock(__gthread_recursive_mutex_t * __mutex)28184d9c625SLionel Sambuc __gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex)
28284d9c625SLionel Sambuc {
28384d9c625SLionel Sambuc   return __gthread_mutex_trylock (__mutex);
28484d9c625SLionel Sambuc }
28584d9c625SLionel Sambuc 
28684d9c625SLionel Sambuc static inline int
__gthread_recursive_mutex_unlock(__gthread_recursive_mutex_t * __mutex)28784d9c625SLionel Sambuc __gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex)
28884d9c625SLionel Sambuc {
28984d9c625SLionel Sambuc   return __gthread_mutex_unlock (__mutex);
29084d9c625SLionel Sambuc }
29184d9c625SLionel Sambuc 
292*0a6a1f1dSLionel Sambuc static inline int
__gthread_recursive_mutex_destroy(__gthread_recursive_mutex_t * __mutex)293*0a6a1f1dSLionel Sambuc __gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex)
294*0a6a1f1dSLionel Sambuc {
295*0a6a1f1dSLionel Sambuc   return __gthread_mutex_destroy (__mutex);
296*0a6a1f1dSLionel Sambuc }
297*0a6a1f1dSLionel Sambuc 
29884d9c625SLionel Sambuc #endif /* _LIBOBJC */
29984d9c625SLionel Sambuc 
30084d9c625SLionel Sambuc #undef _GLIBCXX_UNUSED
30184d9c625SLionel Sambuc 
30284d9c625SLionel Sambuc #endif /* ! _GLIBCXX_GCC_GTHR_SINGLE_H */
303