Home | History | Annotate | Line # | Download | only in libgomp
omp.h.in revision 1.3
      1  1.3  mrg /* Copyright (C) 2005-2013 Free Software Foundation, Inc.
      2  1.1  mrg    Contributed by Richard Henderson <rth (at) redhat.com>.
      3  1.1  mrg 
      4  1.1  mrg    This file is part of the GNU OpenMP Library (libgomp).
      5  1.1  mrg 
      6  1.1  mrg    Libgomp is free software; you can redistribute it and/or modify it
      7  1.1  mrg    under the terms of the GNU General Public License as published by
      8  1.1  mrg    the Free Software Foundation; either version 3, or (at your option)
      9  1.1  mrg    any later version.
     10  1.1  mrg 
     11  1.1  mrg    Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
     12  1.1  mrg    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     13  1.1  mrg    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
     14  1.1  mrg    more details.
     15  1.1  mrg 
     16  1.1  mrg    Under Section 7 of GPL version 3, you are granted additional
     17  1.1  mrg    permissions described in the GCC Runtime Library Exception, version
     18  1.1  mrg    3.1, as published by the Free Software Foundation.
     19  1.1  mrg 
     20  1.1  mrg    You should have received a copy of the GNU General Public License and
     21  1.1  mrg    a copy of the GCC Runtime Library Exception along with this program;
     22  1.1  mrg    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
     23  1.1  mrg    <http://www.gnu.org/licenses/>.  */
     24  1.1  mrg 
     25  1.1  mrg #ifndef OMP_H
     26  1.1  mrg #define OMP_H 1
     27  1.1  mrg 
     28  1.1  mrg #ifndef _LIBGOMP_OMP_LOCK_DEFINED
     29  1.1  mrg #define _LIBGOMP_OMP_LOCK_DEFINED 1
     30  1.1  mrg /* These two structures get edited by the libgomp build process to
     31  1.1  mrg    reflect the shape of the two types.  Their internals are private
     32  1.1  mrg    to the library.  */
     33  1.1  mrg 
     34  1.1  mrg typedef struct
     35  1.1  mrg {
     36  1.1  mrg   unsigned char _x[@OMP_LOCK_SIZE@]
     37  1.1  mrg     __attribute__((__aligned__(@OMP_LOCK_ALIGN@)));
     38  1.1  mrg } omp_lock_t;
     39  1.1  mrg 
     40  1.1  mrg typedef struct
     41  1.1  mrg {
     42  1.1  mrg   unsigned char _x[@OMP_NEST_LOCK_SIZE@]
     43  1.1  mrg     __attribute__((__aligned__(@OMP_NEST_LOCK_ALIGN@)));
     44  1.1  mrg } omp_nest_lock_t;
     45  1.1  mrg #endif
     46  1.1  mrg 
     47  1.1  mrg typedef enum omp_sched_t
     48  1.1  mrg {
     49  1.1  mrg   omp_sched_static = 1,
     50  1.1  mrg   omp_sched_dynamic = 2,
     51  1.1  mrg   omp_sched_guided = 3,
     52  1.1  mrg   omp_sched_auto = 4
     53  1.1  mrg } omp_sched_t;
     54  1.1  mrg 
     55  1.1  mrg #ifdef __cplusplus
     56  1.1  mrg extern "C" {
     57  1.1  mrg # define __GOMP_NOTHROW throw ()
     58  1.1  mrg #else
     59  1.1  mrg # define __GOMP_NOTHROW __attribute__((__nothrow__))
     60  1.1  mrg #endif
     61  1.1  mrg 
     62  1.1  mrg extern void omp_set_num_threads (int) __GOMP_NOTHROW;
     63  1.1  mrg extern int omp_get_num_threads (void) __GOMP_NOTHROW;
     64  1.1  mrg extern int omp_get_max_threads (void) __GOMP_NOTHROW;
     65  1.1  mrg extern int omp_get_thread_num (void) __GOMP_NOTHROW;
     66  1.1  mrg extern int omp_get_num_procs (void) __GOMP_NOTHROW;
     67  1.1  mrg 
     68  1.1  mrg extern int omp_in_parallel (void) __GOMP_NOTHROW;
     69  1.1  mrg 
     70  1.1  mrg extern void omp_set_dynamic (int) __GOMP_NOTHROW;
     71  1.1  mrg extern int omp_get_dynamic (void) __GOMP_NOTHROW;
     72  1.1  mrg 
     73  1.1  mrg extern void omp_set_nested (int) __GOMP_NOTHROW;
     74  1.1  mrg extern int omp_get_nested (void) __GOMP_NOTHROW;
     75  1.1  mrg 
     76  1.1  mrg extern void omp_init_lock (omp_lock_t *) __GOMP_NOTHROW;
     77  1.1  mrg extern void omp_destroy_lock (omp_lock_t *) __GOMP_NOTHROW;
     78  1.1  mrg extern void omp_set_lock (omp_lock_t *) __GOMP_NOTHROW;
     79  1.1  mrg extern void omp_unset_lock (omp_lock_t *) __GOMP_NOTHROW;
     80  1.1  mrg extern int omp_test_lock (omp_lock_t *) __GOMP_NOTHROW;
     81  1.1  mrg 
     82  1.1  mrg extern void omp_init_nest_lock (omp_nest_lock_t *) __GOMP_NOTHROW;
     83  1.1  mrg extern void omp_destroy_nest_lock (omp_nest_lock_t *) __GOMP_NOTHROW;
     84  1.1  mrg extern void omp_set_nest_lock (omp_nest_lock_t *) __GOMP_NOTHROW;
     85  1.1  mrg extern void omp_unset_nest_lock (omp_nest_lock_t *) __GOMP_NOTHROW;
     86  1.1  mrg extern int omp_test_nest_lock (omp_nest_lock_t *) __GOMP_NOTHROW;
     87  1.1  mrg 
     88  1.1  mrg extern double omp_get_wtime (void) __GOMP_NOTHROW;
     89  1.1  mrg extern double omp_get_wtick (void) __GOMP_NOTHROW;
     90  1.1  mrg 
     91  1.1  mrg void omp_set_schedule (omp_sched_t, int) __GOMP_NOTHROW;
     92  1.1  mrg void omp_get_schedule (omp_sched_t *, int *) __GOMP_NOTHROW;
     93  1.1  mrg int omp_get_thread_limit (void) __GOMP_NOTHROW;
     94  1.1  mrg void omp_set_max_active_levels (int) __GOMP_NOTHROW;
     95  1.1  mrg int omp_get_max_active_levels (void) __GOMP_NOTHROW;
     96  1.1  mrg int omp_get_level (void) __GOMP_NOTHROW;
     97  1.1  mrg int omp_get_ancestor_thread_num (int) __GOMP_NOTHROW;
     98  1.1  mrg int omp_get_team_size (int) __GOMP_NOTHROW;
     99  1.1  mrg int omp_get_active_level (void) __GOMP_NOTHROW;
    100  1.1  mrg 
    101  1.3  mrg int omp_in_final (void) __GOMP_NOTHROW;
    102  1.3  mrg 
    103  1.1  mrg #ifdef __cplusplus
    104  1.1  mrg }
    105  1.1  mrg #endif
    106  1.1  mrg 
    107  1.1  mrg #endif /* OMP_H */
    108