diff options
Diffstat (limited to 'gcc-4.2.1-5666.3/libgomp/config/posix')
-rw-r--r-- | gcc-4.2.1-5666.3/libgomp/config/posix/bar.c | 111 | ||||
-rw-r--r-- | gcc-4.2.1-5666.3/libgomp/config/posix/bar.h | 63 | ||||
-rw-r--r-- | gcc-4.2.1-5666.3/libgomp/config/posix/lock.c | 125 | ||||
-rw-r--r-- | gcc-4.2.1-5666.3/libgomp/config/posix/mutex.c | 1 | ||||
-rw-r--r-- | gcc-4.2.1-5666.3/libgomp/config/posix/mutex.h | 60 | ||||
-rw-r--r-- | gcc-4.2.1-5666.3/libgomp/config/posix/omp-lock.h | 11 | ||||
-rw-r--r-- | gcc-4.2.1-5666.3/libgomp/config/posix/proc.c | 103 | ||||
-rw-r--r-- | gcc-4.2.1-5666.3/libgomp/config/posix/sem.c | 126 | ||||
-rw-r--r-- | gcc-4.2.1-5666.3/libgomp/config/posix/sem.h | 90 | ||||
-rw-r--r-- | gcc-4.2.1-5666.3/libgomp/config/posix/time.c | 81 |
10 files changed, 0 insertions, 771 deletions
diff --git a/gcc-4.2.1-5666.3/libgomp/config/posix/bar.c b/gcc-4.2.1-5666.3/libgomp/config/posix/bar.c deleted file mode 100644 index 79721610c..000000000 --- a/gcc-4.2.1-5666.3/libgomp/config/posix/bar.c +++ /dev/null @@ -1,111 +0,0 @@ -/* Copyright (C) 2005 Free Software Foundation, Inc. - Contributed by Richard Henderson <rth@redhat.com>. - - This file is part of the GNU OpenMP Library (libgomp). - - Libgomp is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for - more details. - - You should have received a copy of the GNU Lesser General Public License - along with libgomp; see the file COPYING.LIB. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* 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. */ - -/* This is the default implementation of a barrier synchronization mechanism - for libgomp. This type is private to the library. Note that we rely on - being able to adjust the barrier count while threads are blocked, so the - POSIX pthread_barrier_t won't work. */ - -#include "libgomp.h" - - -void -gomp_barrier_init (gomp_barrier_t *bar, unsigned count) -{ - gomp_mutex_init (&bar->mutex1); -#ifndef HAVE_SYNC_BUILTINS - gomp_mutex_init (&bar->mutex2); -#endif - gomp_sem_init (&bar->sem1, 0); - gomp_sem_init (&bar->sem2, 0); - bar->total = count; - bar->arrived = 0; -} - -void -gomp_barrier_destroy (gomp_barrier_t *bar) -{ - /* Before destroying, make sure all threads have left the barrier. */ - gomp_mutex_lock (&bar->mutex1); - gomp_mutex_unlock (&bar->mutex1); - - gomp_mutex_destroy (&bar->mutex1); -#ifndef HAVE_SYNC_BUILTINS - gomp_mutex_destroy (&bar->mutex2); -#endif - gomp_sem_destroy (&bar->sem1); - gomp_sem_destroy (&bar->sem2); -} - -void -gomp_barrier_reinit (gomp_barrier_t *bar, unsigned count) -{ - gomp_mutex_lock (&bar->mutex1); - bar->total = count; - gomp_mutex_unlock (&bar->mutex1); -} - -void -gomp_barrier_wait_end (gomp_barrier_t *bar, bool last) -{ - unsigned int n; - - if (last) - { - n = --bar->arrived; - if (n > 0) - { - do - gomp_sem_post (&bar->sem1); - while (--n != 0); - gomp_sem_wait (&bar->sem2); - } - gomp_mutex_unlock (&bar->mutex1); - } - else - { - gomp_mutex_unlock (&bar->mutex1); - gomp_sem_wait (&bar->sem1); - -#ifdef HAVE_SYNC_BUILTINS - n = __sync_add_and_fetch (&bar->arrived, -1); -#else - gomp_mutex_lock (&bar->mutex2); - n = --bar->arrived; - gomp_mutex_unlock (&bar->mutex2); -#endif - - if (n == 0) - gomp_sem_post (&bar->sem2); - } -} - -void -gomp_barrier_wait (gomp_barrier_t *barrier) -{ - gomp_barrier_wait_end (barrier, gomp_barrier_wait_start (barrier)); -} diff --git a/gcc-4.2.1-5666.3/libgomp/config/posix/bar.h b/gcc-4.2.1-5666.3/libgomp/config/posix/bar.h deleted file mode 100644 index 5275efa96..000000000 --- a/gcc-4.2.1-5666.3/libgomp/config/posix/bar.h +++ /dev/null @@ -1,63 +0,0 @@ -/* Copyright (C) 2005 Free Software Foundation, Inc. - Contributed by Richard Henderson <rth@redhat.com>. - - This file is part of the GNU OpenMP Library (libgomp). - - Libgomp is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for - more details. - - You should have received a copy of the GNU Lesser General Public License - along with libgomp; see the file COPYING.LIB. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* 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. */ - -/* This is the default implementation of a barrier synchronization mechanism - for libgomp. This type is private to the library. Note that we rely on - being able to adjust the barrier count while threads are blocked, so the - POSIX pthread_barrier_t won't work. */ - -#ifndef GOMP_BARRIER_H -#define GOMP_BARRIER_H 1 - -#include <pthread.h> - -typedef struct -{ - gomp_mutex_t mutex1; -#ifndef HAVE_SYNC_BUILTINS - gomp_mutex_t mutex2; -#endif - gomp_sem_t sem1; - gomp_sem_t sem2; - unsigned total; - unsigned arrived; -} gomp_barrier_t; - -extern void gomp_barrier_init (gomp_barrier_t *, unsigned); -extern void gomp_barrier_reinit (gomp_barrier_t *, unsigned); -extern void gomp_barrier_destroy (gomp_barrier_t *); - -extern void gomp_barrier_wait (gomp_barrier_t *); -extern void gomp_barrier_wait_end (gomp_barrier_t *, bool); - -static inline bool gomp_barrier_wait_start (gomp_barrier_t *bar) -{ - gomp_mutex_lock (&bar->mutex1); - return ++bar->arrived == bar->total; -} - -#endif /* GOMP_BARRIER_H */ diff --git a/gcc-4.2.1-5666.3/libgomp/config/posix/lock.c b/gcc-4.2.1-5666.3/libgomp/config/posix/lock.c deleted file mode 100644 index 59459bb86..000000000 --- a/gcc-4.2.1-5666.3/libgomp/config/posix/lock.c +++ /dev/null @@ -1,125 +0,0 @@ -/* Copyright (C) 2005 Free Software Foundation, Inc. - Contributed by Richard Henderson <rth@redhat.com>. - - This file is part of the GNU OpenMP Library (libgomp). - - Libgomp is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for - more details. - - You should have received a copy of the GNU Lesser General Public License - along with libgomp; see the file COPYING.LIB. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* 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. */ - -/* This is the default PTHREADS implementation of the public OpenMP - locking primitives. - - Because OpenMP uses different entry points for normal and recursive - locks, and pthreads uses only one entry point, a system may be able - to do better and streamline the locking as well as reduce the size - of the types exported. */ - -/* We need Unix98 extensions to get recursive locks. On Tru64 UNIX V4.0F, - the declarations are available without _XOPEN_SOURCE, which actually - breaks compilation. */ -#ifndef __osf__ -#define _XOPEN_SOURCE 500 -#endif - -#include "libgomp.h" - - -void -omp_init_lock (omp_lock_t *lock) -{ - pthread_mutex_init (lock, NULL); -} - -void -omp_destroy_lock (omp_lock_t *lock) -{ - pthread_mutex_destroy (lock); -} - -void -omp_set_lock (omp_lock_t *lock) -{ - pthread_mutex_lock (lock); -} - -void -omp_unset_lock (omp_lock_t *lock) -{ - pthread_mutex_unlock (lock); -} - -int -omp_test_lock (omp_lock_t *lock) -{ - return pthread_mutex_trylock (lock) == 0; -} - -void -omp_init_nest_lock (omp_nest_lock_t *lock) -{ - pthread_mutexattr_t attr; - - pthread_mutexattr_init (&attr); - pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_RECURSIVE); - pthread_mutex_init (&lock->lock, &attr); - lock->count = 0; - pthread_mutexattr_destroy (&attr); -} - -void -omp_destroy_nest_lock (omp_nest_lock_t *lock) -{ - pthread_mutex_destroy (&lock->lock); -} - -void -omp_set_nest_lock (omp_nest_lock_t *lock) -{ - pthread_mutex_lock (&lock->lock); - lock->count++; -} - -void -omp_unset_nest_lock (omp_nest_lock_t *lock) -{ - lock->count--; - pthread_mutex_unlock (&lock->lock); -} - -int -omp_test_nest_lock (omp_nest_lock_t *lock) -{ - if (pthread_mutex_trylock (&lock->lock) == 0) - return ++lock->count; - return 0; -} - -ialias (omp_init_lock) -ialias (omp_init_nest_lock) -ialias (omp_destroy_lock) -ialias (omp_destroy_nest_lock) -ialias (omp_set_lock) -ialias (omp_set_nest_lock) -ialias (omp_unset_lock) -ialias (omp_unset_nest_lock) -ialias (omp_test_lock) -ialias (omp_test_nest_lock) diff --git a/gcc-4.2.1-5666.3/libgomp/config/posix/mutex.c b/gcc-4.2.1-5666.3/libgomp/config/posix/mutex.c deleted file mode 100644 index 39bb64da0..000000000 --- a/gcc-4.2.1-5666.3/libgomp/config/posix/mutex.c +++ /dev/null @@ -1 +0,0 @@ -/* Everything is in the header. */ diff --git a/gcc-4.2.1-5666.3/libgomp/config/posix/mutex.h b/gcc-4.2.1-5666.3/libgomp/config/posix/mutex.h deleted file mode 100644 index c798e78ae..000000000 --- a/gcc-4.2.1-5666.3/libgomp/config/posix/mutex.h +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright (C) 2005 Free Software Foundation, Inc. - Contributed by Richard Henderson <rth@redhat.com>. - - This file is part of the GNU OpenMP Library (libgomp). - - Libgomp is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for - more details. - - You should have received a copy of the GNU Lesser General Public License - along with libgomp; see the file COPYING.LIB. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* 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. */ - -/* This is the default PTHREADS implementation of a mutex synchronization - mechanism for libgomp. This type is private to the library. */ - -#ifndef GOMP_MUTEX_H -#define GOMP_MUTEX_H 1 - -#include <pthread.h> - -typedef pthread_mutex_t gomp_mutex_t; - -#define GOMP_MUTEX_INIT_0 0 - -static inline void gomp_mutex_init (gomp_mutex_t *mutex) -{ - pthread_mutex_init (mutex, NULL); -} - -static inline void gomp_mutex_lock (gomp_mutex_t *mutex) -{ - pthread_mutex_lock (mutex); -} - -static inline void gomp_mutex_unlock (gomp_mutex_t *mutex) -{ - pthread_mutex_unlock (mutex); -} - -static inline void gomp_mutex_destroy (gomp_mutex_t *mutex) -{ - pthread_mutex_destroy (mutex); -} - -#endif /* GOMP_MUTEX_H */ diff --git a/gcc-4.2.1-5666.3/libgomp/config/posix/omp-lock.h b/gcc-4.2.1-5666.3/libgomp/config/posix/omp-lock.h deleted file mode 100644 index ed70618d8..000000000 --- a/gcc-4.2.1-5666.3/libgomp/config/posix/omp-lock.h +++ /dev/null @@ -1,11 +0,0 @@ -/* This header is used during the build process to find the size and - alignment of the public OpenMP locks, so that we can export data - structures without polluting the namespace. - - In this default POSIX implementation, we map the two locks to the - same PTHREADS primitive. */ - -#include <pthread.h> - -typedef pthread_mutex_t omp_lock_t; -typedef struct { pthread_mutex_t lock; int count; } omp_nest_lock_t; diff --git a/gcc-4.2.1-5666.3/libgomp/config/posix/proc.c b/gcc-4.2.1-5666.3/libgomp/config/posix/proc.c deleted file mode 100644 index 3ee84f5c9..000000000 --- a/gcc-4.2.1-5666.3/libgomp/config/posix/proc.c +++ /dev/null @@ -1,103 +0,0 @@ -/* Copyright (C) 2005, 2006 Free Software Foundation, Inc. - Contributed by Richard Henderson <rth@redhat.com>. - - This file is part of the GNU OpenMP Library (libgomp). - - Libgomp is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for - more details. - - You should have received a copy of the GNU Lesser General Public License - along with libgomp; see the file COPYING.LIB. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* 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. */ - -/* This file contains system specific routines related to counting - online processors and dynamic load balancing. It is expected that - a system may well want to write special versions of each of these. - - The following implementation uses a mix of POSIX and BSD routines. */ - -#include "libgomp.h" -#include <unistd.h> -#include <stdlib.h> -#ifdef HAVE_GETLOADAVG -# ifdef HAVE_SYS_LOADAVG_H -# include <sys/loadavg.h> -# endif -#endif - - -/* At startup, determine the default number of threads. It would seem - this should be related to the number of cpus online. */ - -void -gomp_init_num_threads (void) -{ -#ifdef _SC_NPROCESSORS_ONLN - gomp_nthreads_var = sysconf (_SC_NPROCESSORS_ONLN); -#endif -} - -/* When OMP_DYNAMIC is set, at thread launch determine the number of - threads we should spawn for this team. */ -/* ??? I have no idea what best practice for this is. Surely some - function of the number of processors that are *still* online and - the load average. Here I use the number of processors online - minus the 15 minute load average. */ - -unsigned -gomp_dynamic_max_threads (void) -{ - unsigned n_onln, loadavg; - -#ifdef _SC_NPROCESSORS_ONLN - n_onln = sysconf (_SC_NPROCESSORS_ONLN); - if (n_onln > gomp_nthreads_var) - n_onln = gomp_nthreads_var; -#else - n_onln = gomp_nthreads_var; -#endif - - loadavg = 0; -#ifdef HAVE_GETLOADAVG - { - double dloadavg[3]; - if (getloadavg (dloadavg, 3) == 3) - { - /* Add 0.1 to get a kind of biased rounding. */ - loadavg = dloadavg[2] + 0.1; - } - } -#endif - - if (loadavg >= n_onln) - return 1; - else - return n_onln - loadavg; -} - -int -omp_get_num_procs (void) -{ -#ifdef _SC_NPROCESSORS_ONLN - return sysconf (_SC_NPROCESSORS_ONLN); -#else - return gomp_nthreads_var; -#endif -} - -ialias (omp_get_num_procs) diff --git a/gcc-4.2.1-5666.3/libgomp/config/posix/sem.c b/gcc-4.2.1-5666.3/libgomp/config/posix/sem.c deleted file mode 100644 index b44cb5d16..000000000 --- a/gcc-4.2.1-5666.3/libgomp/config/posix/sem.c +++ /dev/null @@ -1,126 +0,0 @@ -/* Copyright (C) 2005, 2006 Free Software Foundation, Inc. - Contributed by Richard Henderson <rth@redhat.com>. - - This file is part of the GNU OpenMP Library (libgomp). - - Libgomp is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for - more details. - - You should have received a copy of the GNU Lesser General Public License - along with libgomp; see the file COPYING.LIB. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* 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. */ - -/* This is the default POSIX 1003.1b implementation of a semaphore - synchronization mechanism for libgomp. This type is private to - the library. - - This is a bit heavy weight for what we need, in that we're not - interested in sem_wait as a cancelation point, but it's not too - bad for a default. */ - -#include "libgomp.h" - -#ifdef HAVE_BROKEN_POSIX_SEMAPHORES -#include <stdlib.h> - -void gomp_sem_init (gomp_sem_t *sem, int value) -{ - int ret; - - ret = pthread_mutex_init (&sem->mutex, NULL); - if (ret) - return; - - ret = pthread_cond_init (&sem->cond, NULL); - if (ret) - return; - - sem->value = value; -} - -void gomp_sem_wait (gomp_sem_t *sem) -{ - int ret; - - ret = pthread_mutex_lock (&sem->mutex); - if (ret) - return; - - if (sem->value > 0) - { - sem->value--; - ret = pthread_mutex_unlock (&sem->mutex); - return; - } - - while (sem->value <= 0) - { - ret = pthread_cond_wait (&sem->cond, &sem->mutex); - if (ret) - { - pthread_mutex_unlock (&sem->mutex); - return; - } - } - - sem->value--; - ret = pthread_mutex_unlock (&sem->mutex); - return; -} - -void gomp_sem_post (gomp_sem_t *sem) -{ - int ret; - - ret = pthread_mutex_lock (&sem->mutex); - if (ret) - return; - - sem->value++; - - ret = pthread_mutex_unlock (&sem->mutex); - if (ret) - return; - - ret = pthread_cond_signal (&sem->cond); - - return; -} - -void gomp_sem_destroy (gomp_sem_t *sem) -{ - int ret; - - ret = pthread_mutex_destroy (&sem->mutex); - if (ret) - return; - - ret = pthread_cond_destroy (&sem->cond); - - return; -} -#else /* HAVE_BROKEN_POSIX_SEMAPHORES */ -void -gomp_sem_wait (gomp_sem_t *sem) -{ - /* With POSIX, the wait can be canceled by signals. We don't want that. - It is expected that the return value here is -1 and errno is EINTR. */ - while (sem_wait (sem) != 0) - continue; -} -#endif diff --git a/gcc-4.2.1-5666.3/libgomp/config/posix/sem.h b/gcc-4.2.1-5666.3/libgomp/config/posix/sem.h deleted file mode 100644 index 7056abffc..000000000 --- a/gcc-4.2.1-5666.3/libgomp/config/posix/sem.h +++ /dev/null @@ -1,90 +0,0 @@ -/* Copyright (C) 2005, 2006 Free Software Foundation, Inc. - Contributed by Richard Henderson <rth@redhat.com>. - - This file is part of the GNU OpenMP Library (libgomp). - - Libgomp is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for - more details. - - You should have received a copy of the GNU Lesser General Public License - along with libgomp; see the file COPYING.LIB. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* 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. */ - -/* This is the default POSIX 1003.1b implementation of a semaphore - synchronization mechanism for libgomp. This type is private to - the library. - - This is a bit heavy weight for what we need, in that we're not - interested in sem_wait as a cancelation point, but it's not too - bad for a default. */ - -#ifndef GOMP_SEM_H -#define GOMP_SEM_H 1 - -#ifdef HAVE_ATTRIBUTE_VISIBILITY -# pragma GCC visibility push(default) -#endif - -#include <semaphore.h> - -#ifdef HAVE_ATTRIBUTE_VISIBILITY -# pragma GCC visibility pop -#endif - -#ifdef HAVE_BROKEN_POSIX_SEMAPHORES -#include <pthread.h> - -struct gomp_sem -{ - pthread_mutex_t mutex; - pthread_cond_t cond; - int value; -}; - -typedef struct gomp_sem gomp_sem_t; - -extern void gomp_sem_init (gomp_sem_t *sem, int value); - -extern void gomp_sem_wait (gomp_sem_t *sem); - -extern void gomp_sem_post (gomp_sem_t *sem); - -extern void gomp_sem_destroy (gomp_sem_t *sem); - -#else /* HAVE_BROKEN_POSIX_SEMAPHORES */ - -typedef sem_t gomp_sem_t; - -static inline void gomp_sem_init (gomp_sem_t *sem, int value) -{ - sem_init (sem, 0, value); -} - -extern void gomp_sem_wait (gomp_sem_t *sem); - -static inline void gomp_sem_post (gomp_sem_t *sem) -{ - sem_post (sem); -} - -static inline void gomp_sem_destroy (gomp_sem_t *sem) -{ - sem_destroy (sem); -} -#endif /* doesn't HAVE_BROKEN_POSIX_SEMAPHORES */ -#endif /* GOMP_SEM_H */ diff --git a/gcc-4.2.1-5666.3/libgomp/config/posix/time.c b/gcc-4.2.1-5666.3/libgomp/config/posix/time.c deleted file mode 100644 index ef267a312..000000000 --- a/gcc-4.2.1-5666.3/libgomp/config/posix/time.c +++ /dev/null @@ -1,81 +0,0 @@ -/* Copyright (C) 2005 Free Software Foundation, Inc. - Contributed by Richard Henderson <rth@redhat.com>. - - This file is part of the GNU OpenMP Library (libgomp). - - Libgomp is free software; you can redistribute it and/or modify it - under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. - - Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for - more details. - - You should have received a copy of the GNU Lesser General Public License - along with libgomp; see the file COPYING.LIB. If not, write to the - Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - MA 02110-1301, USA. */ - -/* 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. */ - -/* This file contains system specific timer routines. It is expected that - a system may well want to write special versions of each of these. - - The following implementation uses the most simple POSIX routines. - If present, POSIX 4 clocks should be used instead. */ - -#include "libgomp.h" -#include <unistd.h> -#if TIME_WITH_SYS_TIME -# include <sys/time.h> -# include <time.h> -#else -# if HAVE_SYS_TIME_H -# include <sys/time.h> -# else -# include <time.h> -# endif -#endif - - -double -omp_get_wtime (void) -{ -#ifdef HAVE_CLOCK_GETTIME - struct timespec ts; -# ifdef CLOCK_MONOTONIC - if (clock_gettime (CLOCK_MONOTONIC, &ts) < 0) -# endif - clock_gettime (CLOCK_REALTIME, &ts); - return ts.tv_sec + ts.tv_nsec / 1e9; -#else - struct timeval tv; - gettimeofday (&tv, NULL); - return tv.tv_sec + tv.tv_usec / 1e6; -#endif -} - -double -omp_get_wtick (void) -{ -#ifdef HAVE_CLOCK_GETTIME - struct timespec ts; -# ifdef CLOCK_MONOTONIC - if (clock_getres (CLOCK_MONOTONIC, &ts) < 0) -# endif - clock_getres (CLOCK_REALTIME, &ts); - return ts.tv_sec + ts.tv_nsec / 1e9; -#else - return 1.0 / sysconf(_SC_CLK_TCK); -#endif -} - -ialias (omp_get_wtime) -ialias (omp_get_wtick) |