6 //===----------------------------------------------------------------------===//
8 // The LLVM Compiler Infrastructure
10 // This file is dual licensed under the MIT and the University of Illinois Open
11 // Source Licenses. See LICENSE.txt for details.
13 //===----------------------------------------------------------------------===//
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@"
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
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
46 # define kmp_malloc kmpc_malloc
47 # define kmp_calloc kmpc_calloc
48 # define kmp_realloc kmpc_realloc
49 # define kmp_free kmpc_free
53 # define __KAI_KMPC_CONVENTION __cdecl
55 # define __KAI_KMPC_CONVENTION
58 /* schedule kind constants */
59 typedef enum omp_sched_t {
61 omp_sched_dynamic = 2,
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);
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 *);
90 /* lock API functions */
91 typedef struct omp_lock_t {
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 *);
101 /* nested lock API functions */
102 typedef struct omp_nest_lock_t {
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 *);
112 /* time API functions */
113 extern double __KAI_KMPC_CONVENTION omp_get_wtime (void);
114 extern double __KAI_KMPC_CONVENTION omp_get_wtick (void);
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 *);
131 /* affinity API functions */
132 typedef void * kmp_affinity_mask_t;
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 *);
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 *);
149 extern void __KAI_KMPC_CONVENTION kmp_set_warnings_on(void);
150 extern void __KAI_KMPC_CONVENTION kmp_set_warnings_off(void);
152 # undef __KAI_KMPC_CONVENTION
155 The following typedefs are not standard, deprecated and will be removed in a future release.
157 typedef int omp_int_t;
158 typedef double omp_wtime_t;