]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/openmp/runtime/src/include/30/omp.h.var
MFC r355070:
[FreeBSD/FreeBSD.git] / contrib / openmp / runtime / src / include / 30 / omp.h.var
1 /*
2  * include/30/omp.h.var
3  */
4
5
6 //===----------------------------------------------------------------------===//
7 //
8 //                     The LLVM Compiler Infrastructure
9 //
10 // This file is dual licensed under the MIT and the University of Illinois Open
11 // Source Licenses. See LICENSE.txt for details.
12 //
13 //===----------------------------------------------------------------------===//
14
15
16 #ifndef __OMP_H
17 #   define __OMP_H
18
19 #   define KMP_VERSION_MAJOR    @LIBOMP_VERSION_MAJOR@
20 #   define KMP_VERSION_MINOR    @LIBOMP_VERSION_MINOR@
21 #   define KMP_VERSION_BUILD    @LIBOMP_VERSION_BUILD@
22 #   define KMP_BUILD_DATE       "@LIBOMP_BUILD_DATE@"
23
24 #   ifdef __cplusplus
25     extern "C" {
26 #   endif
27
28 #       define omp_set_num_threads          ompc_set_num_threads
29 #       define omp_set_dynamic              ompc_set_dynamic
30 #       define omp_set_nested               ompc_set_nested
31 #       define omp_set_max_active_levels    ompc_set_max_active_levels
32 #       define omp_set_schedule             ompc_set_schedule
33 #       define omp_get_ancestor_thread_num  ompc_get_ancestor_thread_num
34 #       define omp_get_team_size            ompc_get_team_size
35
36
37 #       define kmp_set_stacksize            kmpc_set_stacksize
38 #       define kmp_set_stacksize_s          kmpc_set_stacksize_s
39 #       define kmp_set_blocktime            kmpc_set_blocktime
40 #       define kmp_set_library              kmpc_set_library
41 #       define kmp_set_defaults             kmpc_set_defaults
42 #       define kmp_set_affinity_mask_proc   kmpc_set_affinity_mask_proc
43 #       define kmp_unset_affinity_mask_proc kmpc_unset_affinity_mask_proc
44 #       define kmp_get_affinity_mask_proc   kmpc_get_affinity_mask_proc
45
46 #       define kmp_malloc                   kmpc_malloc
47 #       define kmp_calloc                   kmpc_calloc
48 #       define kmp_realloc                  kmpc_realloc
49 #       define kmp_free                     kmpc_free
50
51
52 #   if defined(_WIN32)
53 #       define __KAI_KMPC_CONVENTION __cdecl
54 #   else
55 #       define __KAI_KMPC_CONVENTION
56 #   endif
57
58     /* schedule kind constants */
59     typedef enum omp_sched_t {
60         omp_sched_static  = 1,
61         omp_sched_dynamic = 2,
62         omp_sched_guided  = 3,
63         omp_sched_auto    = 4
64     } omp_sched_t;
65
66     /* set API functions */
67     extern void   __KAI_KMPC_CONVENTION  omp_set_num_threads (int);
68     extern void   __KAI_KMPC_CONVENTION  omp_set_dynamic     (int);
69     extern void   __KAI_KMPC_CONVENTION  omp_set_nested      (int);
70     extern void   __KAI_KMPC_CONVENTION  omp_set_max_active_levels (int);
71     extern void   __KAI_KMPC_CONVENTION  omp_set_schedule          (omp_sched_t, int);
72
73     /* query API functions */
74     extern int    __KAI_KMPC_CONVENTION  omp_get_num_threads  (void);
75     extern int    __KAI_KMPC_CONVENTION  omp_get_dynamic      (void);
76     extern int    __KAI_KMPC_CONVENTION  omp_get_nested       (void);
77     extern int    __KAI_KMPC_CONVENTION  omp_get_max_threads  (void);
78     extern int    __KAI_KMPC_CONVENTION  omp_get_thread_num   (void);
79     extern int    __KAI_KMPC_CONVENTION  omp_get_num_procs    (void);
80     extern int    __KAI_KMPC_CONVENTION  omp_in_parallel      (void);
81     extern int    __KAI_KMPC_CONVENTION  omp_in_final         (void);
82     extern int    __KAI_KMPC_CONVENTION  omp_get_active_level        (void);
83     extern int    __KAI_KMPC_CONVENTION  omp_get_level               (void);
84     extern int    __KAI_KMPC_CONVENTION  omp_get_ancestor_thread_num (int);
85     extern int    __KAI_KMPC_CONVENTION  omp_get_team_size           (int);
86     extern int    __KAI_KMPC_CONVENTION  omp_get_thread_limit        (void);
87     extern int    __KAI_KMPC_CONVENTION  omp_get_max_active_levels   (void);
88     extern void   __KAI_KMPC_CONVENTION  omp_get_schedule            (omp_sched_t *, int *);
89
90     /* lock API functions */
91     typedef struct omp_lock_t {
92         void * _lk;
93     } omp_lock_t;
94
95     extern void   __KAI_KMPC_CONVENTION  omp_init_lock    (omp_lock_t *);
96     extern void   __KAI_KMPC_CONVENTION  omp_set_lock     (omp_lock_t *);
97     extern void   __KAI_KMPC_CONVENTION  omp_unset_lock   (omp_lock_t *);
98     extern void   __KAI_KMPC_CONVENTION  omp_destroy_lock (omp_lock_t *);
99     extern int    __KAI_KMPC_CONVENTION  omp_test_lock    (omp_lock_t *);
100
101     /* nested lock API functions */
102     typedef struct omp_nest_lock_t {
103         void * _lk;
104     } omp_nest_lock_t;
105
106     extern void   __KAI_KMPC_CONVENTION  omp_init_nest_lock    (omp_nest_lock_t *);
107     extern void   __KAI_KMPC_CONVENTION  omp_set_nest_lock     (omp_nest_lock_t *);
108     extern void   __KAI_KMPC_CONVENTION  omp_unset_nest_lock   (omp_nest_lock_t *);
109     extern void   __KAI_KMPC_CONVENTION  omp_destroy_nest_lock (omp_nest_lock_t *);
110     extern int    __KAI_KMPC_CONVENTION  omp_test_nest_lock    (omp_nest_lock_t *);
111
112     /* time API functions */
113     extern double __KAI_KMPC_CONVENTION  omp_get_wtime (void);
114     extern double __KAI_KMPC_CONVENTION  omp_get_wtick (void);
115
116 #   include <stdlib.h>
117     /* kmp API functions */
118     extern int    __KAI_KMPC_CONVENTION  kmp_get_stacksize          (void);
119     extern void   __KAI_KMPC_CONVENTION  kmp_set_stacksize          (int);
120     extern size_t __KAI_KMPC_CONVENTION  kmp_get_stacksize_s        (void);
121     extern void   __KAI_KMPC_CONVENTION  kmp_set_stacksize_s        (size_t);
122     extern int    __KAI_KMPC_CONVENTION  kmp_get_blocktime          (void);
123     extern int    __KAI_KMPC_CONVENTION  kmp_get_library            (void);
124     extern void   __KAI_KMPC_CONVENTION  kmp_set_blocktime          (int);
125     extern void   __KAI_KMPC_CONVENTION  kmp_set_library            (int);
126     extern void   __KAI_KMPC_CONVENTION  kmp_set_library_serial     (void);
127     extern void   __KAI_KMPC_CONVENTION  kmp_set_library_turnaround (void);
128     extern void   __KAI_KMPC_CONVENTION  kmp_set_library_throughput (void);
129     extern void   __KAI_KMPC_CONVENTION  kmp_set_defaults           (char const *);
130
131     /* affinity API functions */
132     typedef void * kmp_affinity_mask_t;
133
134     extern int    __KAI_KMPC_CONVENTION  kmp_set_affinity             (kmp_affinity_mask_t *);
135     extern int    __KAI_KMPC_CONVENTION  kmp_get_affinity             (kmp_affinity_mask_t *);
136     extern int    __KAI_KMPC_CONVENTION  kmp_get_affinity_max_proc    (void);
137     extern void   __KAI_KMPC_CONVENTION  kmp_create_affinity_mask     (kmp_affinity_mask_t *);
138     extern void   __KAI_KMPC_CONVENTION  kmp_destroy_affinity_mask    (kmp_affinity_mask_t *);
139     extern int    __KAI_KMPC_CONVENTION  kmp_set_affinity_mask_proc   (int, kmp_affinity_mask_t *);
140     extern int    __KAI_KMPC_CONVENTION  kmp_unset_affinity_mask_proc (int, kmp_affinity_mask_t *);
141     extern int    __KAI_KMPC_CONVENTION  kmp_get_affinity_mask_proc   (int, kmp_affinity_mask_t *);
142
143     extern void * __KAI_KMPC_CONVENTION  kmp_malloc  (size_t);
144     extern void * __KAI_KMPC_CONVENTION  kmp_aligned_malloc  (size_t, size_t);
145     extern void * __KAI_KMPC_CONVENTION  kmp_calloc  (size_t, size_t);
146     extern void * __KAI_KMPC_CONVENTION  kmp_realloc (void *, size_t);
147     extern void   __KAI_KMPC_CONVENTION  kmp_free    (void *);
148
149     extern void   __KAI_KMPC_CONVENTION  kmp_set_warnings_on(void);
150     extern void   __KAI_KMPC_CONVENTION  kmp_set_warnings_off(void);
151
152 #   undef __KAI_KMPC_CONVENTION
153
154     /* Warning:
155        The following typedefs are not standard, deprecated and will be removed in a future release.
156     */
157     typedef int     omp_int_t;
158     typedef double  omp_wtime_t;
159
160 #   ifdef __cplusplus
161     }
162 #   endif
163
164 #endif /* __OMP_H */
165