X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fgthr-single.h;h=357528ad1f16d4aa54518b12498d249ea178b252;hb=d78481a0c10097efaaa7890ee364ac27d264d8d9;hp=64ff354131d5c82cffe95f55d17027f16466b7c5;hpb=5a54c45ed5c603e6fc35b444d37d52b6f076d5d2;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/gthr-single.h b/gcc/gthr-single.h index 64ff354131d..357528ad1f1 100644 --- a/gcc/gthr-single.h +++ b/gcc/gthr-single.h @@ -1,12 +1,13 @@ /* Threads compatibility routines for libgcc2 and libobjc. */ /* Compile this one with gcc. */ -/* Copyright (C) 1997, 1999, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1997, 1999, 2000, 2004, 2008, 2009 + Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free -Software Foundation; either version 2, or (at your option) any later +Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY @@ -14,32 +15,30 @@ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with GCC; see the file COPYING. If not, write to the Free -Software Foundation, 59 Temple Place - Suite 330, Boston, MA -02111-1307, USA. */ +Under Section 7 of GPL version 3, you are granted additional +permissions described in the GCC Runtime Library Exception, version +3.1, as published by the Free Software Foundation. -/* As a special exception, if you link this library with other files, - some of which are compiled with GCC, to produce an executable, - this library does not by itself cause the resulting executable - to be covered by the GNU General Public License. - This exception does not however invalidate any other reasons why - the executable file might be covered by the GNU General Public License. */ +You should have received a copy of the GNU General Public License and +a copy of the GCC Runtime Library Exception along with this program; +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +. */ #ifndef GCC_GTHR_SINGLE_H #define GCC_GTHR_SINGLE_H /* Just provide compatibility for mutex handling. */ +typedef int __gthread_key_t; +typedef int __gthread_once_t; typedef int __gthread_mutex_t; +typedef int __gthread_recursive_mutex_t; +#define __GTHREAD_ONCE_INIT 0 #define __GTHREAD_MUTEX_INIT 0 +#define __GTHREAD_RECURSIVE_MUTEX_INIT 0 -#ifdef __cplusplus -#define UNUSED(x) -#else -#define UNUSED(x) x __attribute__((unused)) -#endif +#define UNUSED __attribute__((unused)) #ifdef _LIBOBJC @@ -50,7 +49,7 @@ static void *thread_local_storage = NULL; /* Initialize the threads subsystem. */ static inline int -__gthread_objc_init_thread_system(void) +__gthread_objc_init_thread_system (void) { /* No thread support available */ return -1; @@ -58,7 +57,7 @@ __gthread_objc_init_thread_system(void) /* Close the threads subsystem. */ static inline int -__gthread_objc_close_thread_system(void) +__gthread_objc_close_thread_system (void) { /* No thread support available */ return -1; @@ -68,7 +67,7 @@ __gthread_objc_close_thread_system(void) /* Create a new thread of execution. */ static inline objc_thread_t -__gthread_objc_thread_detach(void (* func)(void *), void * UNUSED(arg)) +__gthread_objc_thread_detach (void (* func)(void *), void * arg UNUSED) { /* No thread support available */ return NULL; @@ -76,7 +75,7 @@ __gthread_objc_thread_detach(void (* func)(void *), void * UNUSED(arg)) /* Set the current thread's priority. */ static inline int -__gthread_objc_thread_set_priority(int UNUSED(priority)) +__gthread_objc_thread_set_priority (int priority UNUSED) { /* No thread support available */ return -1; @@ -84,39 +83,39 @@ __gthread_objc_thread_set_priority(int UNUSED(priority)) /* Return the current thread's priority. */ static inline int -__gthread_objc_thread_get_priority(void) +__gthread_objc_thread_get_priority (void) { return OBJC_THREAD_INTERACTIVE_PRIORITY; } /* Yield our process time to another thread. */ static inline void -__gthread_objc_thread_yield(void) +__gthread_objc_thread_yield (void) { return; } /* Terminate the current thread. */ static inline int -__gthread_objc_thread_exit(void) +__gthread_objc_thread_exit (void) { /* No thread support available */ /* Should we really exit the program */ - /* exit(&__objc_thread_exit_status); */ + /* exit (&__objc_thread_exit_status); */ return -1; } /* Returns an integer value which uniquely describes a thread. */ static inline objc_thread_t -__gthread_objc_thread_id(void) +__gthread_objc_thread_id (void) { /* No thread support, use 1. */ - return (objc_thread_t)1; + return (objc_thread_t) 1; } /* Sets the thread's local storage pointer. */ static inline int -__gthread_objc_thread_set_data(void *value) +__gthread_objc_thread_set_data (void *value) { thread_local_storage = value; return 0; @@ -124,7 +123,7 @@ __gthread_objc_thread_set_data(void *value) /* Returns the thread's local storage pointer. */ static inline void * -__gthread_objc_thread_get_data(void) +__gthread_objc_thread_get_data (void) { return thread_local_storage; } @@ -133,21 +132,21 @@ __gthread_objc_thread_get_data(void) /* Allocate a mutex. */ static inline int -__gthread_objc_mutex_allocate(objc_mutex_t UNUSED(mutex)) +__gthread_objc_mutex_allocate (objc_mutex_t mutex UNUSED) { return 0; } /* Deallocate a mutex. */ static inline int -__gthread_objc_mutex_deallocate(objc_mutex_t UNUSED(mutex)) +__gthread_objc_mutex_deallocate (objc_mutex_t mutex UNUSED) { return 0; } /* Grab a lock on a mutex. */ static inline int -__gthread_objc_mutex_lock(objc_mutex_t UNUSED(mutex)) +__gthread_objc_mutex_lock (objc_mutex_t mutex UNUSED) { /* There can only be one thread, so we always get the lock */ return 0; @@ -155,7 +154,7 @@ __gthread_objc_mutex_lock(objc_mutex_t UNUSED(mutex)) /* Try to grab a lock on a mutex. */ static inline int -__gthread_objc_mutex_trylock(objc_mutex_t UNUSED(mutex)) +__gthread_objc_mutex_trylock (objc_mutex_t mutex UNUSED) { /* There can only be one thread, so we always get the lock */ return 0; @@ -163,7 +162,7 @@ __gthread_objc_mutex_trylock(objc_mutex_t UNUSED(mutex)) /* Unlock the mutex */ static inline int -__gthread_objc_mutex_unlock(objc_mutex_t UNUSED(mutex)) +__gthread_objc_mutex_unlock (objc_mutex_t mutex UNUSED) { return 0; } @@ -172,36 +171,36 @@ __gthread_objc_mutex_unlock(objc_mutex_t UNUSED(mutex)) /* Allocate a condition. */ static inline int -__gthread_objc_condition_allocate(objc_condition_t UNUSED(condition)) +__gthread_objc_condition_allocate (objc_condition_t condition UNUSED) { return 0; } /* Deallocate a condition. */ static inline int -__gthread_objc_condition_deallocate(objc_condition_t UNUSED(condition)) +__gthread_objc_condition_deallocate (objc_condition_t condition UNUSED) { return 0; } /* Wait on the condition */ static inline int -__gthread_objc_condition_wait(objc_condition_t UNUSED(condition), - objc_mutex_t UNUSED(mutex)) +__gthread_objc_condition_wait (objc_condition_t condition UNUSED, + objc_mutex_t mutex UNUSED) { return 0; } /* Wake up all threads waiting on this condition. */ static inline int -__gthread_objc_condition_broadcast(objc_condition_t UNUSED(condition)) +__gthread_objc_condition_broadcast (objc_condition_t condition UNUSED) { return 0; } /* Wake up one thread waiting on this condition. */ static inline int -__gthread_objc_condition_signal(objc_condition_t UNUSED(condition)) +__gthread_objc_condition_signal (objc_condition_t condition UNUSED) { return 0; } @@ -215,23 +214,77 @@ __gthread_active_p (void) } static inline int -__gthread_mutex_lock (__gthread_mutex_t * UNUSED(mutex)) +__gthread_once (__gthread_once_t *__once UNUSED, void (*__func) (void) UNUSED) +{ + return 0; +} + +static inline int UNUSED +__gthread_key_create (__gthread_key_t *__key UNUSED, void (*__func) (void *) UNUSED) +{ + return 0; +} + +static int UNUSED +__gthread_key_delete (__gthread_key_t __key UNUSED) +{ + return 0; +} + +static inline void * +__gthread_getspecific (__gthread_key_t __key UNUSED) +{ + return 0; +} + +static inline int +__gthread_setspecific (__gthread_key_t __key UNUSED, const void *__v UNUSED) +{ + return 0; +} + +static inline int +__gthread_mutex_destroy (__gthread_mutex_t *__mutex UNUSED) +{ + return 0; +} + +static inline int +__gthread_mutex_lock (__gthread_mutex_t *__mutex UNUSED) { return 0; } static inline int -__gthread_mutex_trylock (__gthread_mutex_t * UNUSED(mutex)) +__gthread_mutex_trylock (__gthread_mutex_t *__mutex UNUSED) { return 0; } static inline int -__gthread_mutex_unlock (__gthread_mutex_t * UNUSED(mutex)) +__gthread_mutex_unlock (__gthread_mutex_t *__mutex UNUSED) { return 0; } +static inline int +__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) +{ + return __gthread_mutex_lock (__mutex); +} + +static inline int +__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) +{ + return __gthread_mutex_trylock (__mutex); +} + +static inline int +__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) +{ + return __gthread_mutex_unlock (__mutex); +} + #endif /* _LIBOBJC */ #undef UNUSED