36 # error The support file kmp_ftn_entry.h should not be compiled by itself.
59 #ifdef KMP_GOMP_COMPAT
60 # if (KMP_FTN_ENTRIES == KMP_FTN_PLAIN) || (KMP_FTN_ENTRIES == KMP_FTN_UPPER)
61 # define PASS_ARGS_BY_VALUE 1
65 # if (KMP_FTN_ENTRIES == KMP_FTN_PLAIN) || (KMP_FTN_ENTRIES == KMP_FTN_APPEND)
66 # define PASS_ARGS_BY_VALUE 1
71 #ifdef PASS_ARGS_BY_VALUE
78 FTN_SET_STACKSIZE(
int KMP_DEREF arg )
81 __kmps_set_stacksize( KMP_DEREF arg );
84 __kmp_aux_set_stacksize( (
size_t) KMP_DEREF arg );
89 FTN_SET_STACKSIZE_S(
size_t KMP_DEREF arg )
92 __kmps_set_stacksize( KMP_DEREF arg );
95 __kmp_aux_set_stacksize( KMP_DEREF arg );
100 FTN_GET_STACKSIZE(
void )
103 return __kmps_get_stacksize();
105 if ( ! __kmp_init_serial ) {
106 __kmp_serial_initialize();
108 return (
int)__kmp_stksize;
113 FTN_GET_STACKSIZE_S(
void )
116 return __kmps_get_stacksize();
118 if ( ! __kmp_init_serial ) {
119 __kmp_serial_initialize();
121 return __kmp_stksize;
126 FTN_SET_BLOCKTIME(
int KMP_DEREF arg )
129 __kmps_set_blocktime( KMP_DEREF arg );
134 gtid = __kmp_entry_gtid();
135 tid = __kmp_tid_from_gtid(gtid);
136 thread = __kmp_thread_from_gtid(gtid);
138 __kmp_aux_set_blocktime( KMP_DEREF arg, thread, tid );
143 FTN_GET_BLOCKTIME(
void )
146 return __kmps_get_blocktime();
152 gtid = __kmp_entry_gtid();
153 tid = __kmp_tid_from_gtid(gtid);
154 thread = __kmp_thread_from_gtid(gtid);
155 team = __kmp_threads[ gtid ] -> th.th_team;
158 if ( __kmp_dflt_blocktime == KMP_MAX_BLOCKTIME ) {
159 KF_TRACE(10, (
"kmp_get_blocktime: T#%d(%d:%d), blocktime=%d\n",
160 gtid, team->t.t_id, tid, KMP_MAX_BLOCKTIME) );
161 return KMP_MAX_BLOCKTIME;
163 #ifdef KMP_ADJUST_BLOCKTIME
164 else if ( __kmp_zero_bt && !get__bt_set( team, tid ) ) {
165 KF_TRACE(10, (
"kmp_get_blocktime: T#%d(%d:%d), blocktime=%d\n",
166 gtid, team->t.t_id, tid, 0) );
171 KF_TRACE(10, (
"kmp_get_blocktime: T#%d(%d:%d), blocktime=%d\n",
172 gtid, team->t.t_id, tid, get__blocktime( team, tid ) ) );
173 return get__blocktime( team, tid );
179 FTN_SET_LIBRARY_SERIAL(
void )
182 __kmps_set_library( library_serial );
185 __kmp_user_set_library( library_serial );
190 FTN_SET_LIBRARY_TURNAROUND(
void )
193 __kmps_set_library( library_turnaround );
196 __kmp_user_set_library( library_turnaround );
201 FTN_SET_LIBRARY_THROUGHPUT(
void )
204 __kmps_set_library( library_throughput );
207 __kmp_user_set_library( library_throughput );
212 FTN_SET_LIBRARY(
int KMP_DEREF arg )
215 __kmps_set_library( KMP_DEREF arg );
217 enum library_type lib;
218 lib = (
enum library_type) KMP_DEREF arg;
220 __kmp_user_set_library( lib );
225 FTN_GET_LIBRARY (
void)
228 return __kmps_get_library();
230 if ( ! __kmp_init_serial ) {
231 __kmp_serial_initialize();
233 return ((
int) __kmp_library);
238 FTN_SET_AFFINITY(
void **mask )
240 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
243 if ( ! TCR_4(__kmp_init_middle) ) {
244 __kmp_middle_initialize();
246 return __kmp_aux_set_affinity( mask );
251 FTN_GET_AFFINITY(
void **mask )
253 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
256 if ( ! TCR_4(__kmp_init_middle) ) {
257 __kmp_middle_initialize();
259 return __kmp_aux_get_affinity( mask );
264 FTN_GET_AFFINITY_MAX_PROC(
void )
266 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
272 if ( ! TCR_4(__kmp_init_middle) ) {
273 __kmp_middle_initialize();
275 if ( ! ( KMP_AFFINITY_CAPABLE() ) ) {
279 #if KMP_GROUP_AFFINITY
280 if ( __kmp_num_proc_groups > 1 ) {
281 return (
int)KMP_CPU_SETSIZE;
289 FTN_CREATE_AFFINITY_MASK(
void **mask )
291 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
297 if ( ! TCR_4(__kmp_init_middle) ) {
298 __kmp_middle_initialize();
300 *mask = kmpc_malloc( __kmp_affin_mask_size );
301 KMP_CPU_ZERO( (kmp_affin_mask_t *)(*mask) );
306 FTN_DESTROY_AFFINITY_MASK(
void **mask )
308 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
314 if ( ! TCR_4(__kmp_init_middle) ) {
315 __kmp_middle_initialize();
317 if ( __kmp_env_consistency_check ) {
318 if ( *mask == NULL ) {
319 KMP_FATAL( AffinityInvalidMask,
"kmp_destroy_affinity_mask" );
328 FTN_SET_AFFINITY_MASK_PROC(
int KMP_DEREF proc,
void **mask )
330 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
333 if ( ! TCR_4(__kmp_init_middle) ) {
334 __kmp_middle_initialize();
336 return __kmp_aux_set_affinity_mask_proc( KMP_DEREF proc, mask );
341 FTN_UNSET_AFFINITY_MASK_PROC(
int KMP_DEREF proc,
void **mask )
343 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
346 if ( ! TCR_4(__kmp_init_middle) ) {
347 __kmp_middle_initialize();
349 return __kmp_aux_unset_affinity_mask_proc( KMP_DEREF proc, mask );
354 FTN_GET_AFFINITY_MASK_PROC(
int KMP_DEREF proc,
void **mask )
356 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
359 if ( ! TCR_4(__kmp_init_middle) ) {
360 __kmp_middle_initialize();
362 return __kmp_aux_get_affinity_mask_proc( KMP_DEREF proc, mask );
372 xexpand(FTN_SET_NUM_THREADS)(
int KMP_DEREF arg )
377 __kmp_set_num_threads( KMP_DEREF arg, __kmp_entry_gtid() );
384 xexpand(FTN_GET_NUM_THREADS)( void )
395 xexpand(FTN_GET_MAX_THREADS)( void )
402 if ( ! TCR_4(__kmp_init_middle) ) {
403 __kmp_middle_initialize();
405 gtid = __kmp_entry_gtid();
406 thread = __kmp_threads[ gtid ];
408 return thread -> th.th_current_task -> td_icvs.nproc;
413 xexpand(FTN_GET_THREAD_NUM)( void )
420 #if KMP_OS_DARWIN || KMP_OS_FREEBSD
421 gtid = __kmp_entry_gtid();
423 if (!__kmp_init_parallel ||
424 (gtid = (
int)((kmp_intptr_t)TlsGetValue( __kmp_gtid_threadprivate_key ))) == 0) {
431 #ifdef KMP_TDATA_GTID
432 if ( __kmp_gtid_mode >= 3 ) {
433 if ((gtid = __kmp_gtid) == KMP_GTID_DNE) {
438 if (!__kmp_init_parallel ||
439 (gtid = (kmp_intptr_t)(pthread_getspecific( __kmp_gtid_threadprivate_key ))) == 0) {
443 #ifdef KMP_TDATA_GTID
447 #error Unknown or unsupported OS
450 return __kmp_tid_from_gtid( gtid );
455 FTN_GET_NUM_KNOWN_THREADS(
void )
460 if ( ! __kmp_init_serial ) {
461 __kmp_serial_initialize();
465 return TCR_4(__kmp_nth);
470 xexpand(FTN_GET_NUM_PROCS)( void )
475 if ( ! TCR_4(__kmp_init_middle) ) {
476 __kmp_middle_initialize();
478 return __kmp_avail_proc;
483 xexpand(FTN_SET_NESTED)(
int KMP_DEREF flag )
486 __kmps_set_nested( KMP_DEREF flag );
490 thread = __kmp_entry_thread();
491 __kmp_save_internal_controls( thread );
492 set__nested( thread, ( (KMP_DEREF flag) ? TRUE : FALSE ) );
498 xexpand(FTN_GET_NESTED)( void )
501 return __kmps_get_nested();
504 thread = __kmp_entry_thread();
505 return get__nested( thread );
510 xexpand(FTN_SET_DYNAMIC)(
int KMP_DEREF flag )
513 __kmps_set_dynamic( KMP_DEREF flag ? TRUE : FALSE );
517 thread = __kmp_entry_thread();
519 __kmp_save_internal_controls( thread );
520 set__dynamic( thread, KMP_DEREF flag ? TRUE : FALSE );
526 xexpand(FTN_GET_DYNAMIC)( void )
529 return __kmps_get_dynamic();
532 thread = __kmp_entry_thread();
533 return get__dynamic( thread );
538 xexpand(FTN_IN_PARALLEL)( void )
543 kmp_info_t *th = __kmp_entry_thread();
545 if ( th->th.th_teams_microtask ) {
550 return ( th->th.th_team->t.t_active_level ? 1 : 0 );
554 return ( th->th.th_root->r.r_in_parallel ? FTN_TRUE : FTN_FALSE );
559 xexpand(FTN_SET_SCHEDULE)( kmp_sched_t KMP_DEREF kind,
int KMP_DEREF modifier )
562 __kmps_set_schedule( KMP_DEREF kind, KMP_DEREF modifier );
566 __kmp_set_schedule( __kmp_entry_gtid(), KMP_DEREF kind, KMP_DEREF modifier );
571 xexpand(FTN_GET_SCHEDULE)( kmp_sched_t * kind,
int * modifier )
574 __kmps_get_schedule( kind, modifier );
578 __kmp_get_schedule( __kmp_entry_gtid(), kind, modifier );
583 xexpand(FTN_SET_MAX_ACTIVE_LEVELS)(
int KMP_DEREF arg )
590 __kmp_set_max_active_levels( __kmp_entry_gtid(), KMP_DEREF arg );
595 xexpand(FTN_GET_MAX_ACTIVE_LEVELS)( void )
602 return __kmp_get_max_active_levels( __kmp_entry_gtid() );
607 xexpand(FTN_GET_ACTIVE_LEVEL)( void )
614 return __kmp_entry_thread() -> th.th_team -> t.t_active_level;
619 xexpand(FTN_GET_LEVEL)( void )
626 return __kmp_entry_thread() -> th.th_team -> t.t_level;
631 xexpand(FTN_GET_ANCESTOR_THREAD_NUM)(
int KMP_DEREF level )
634 return ( KMP_DEREF level ) ? ( -1 ) : ( 0 );
636 return __kmp_get_ancestor_thread_num( __kmp_entry_gtid(), KMP_DEREF level );
641 xexpand(FTN_GET_TEAM_SIZE)(
int KMP_DEREF level )
644 return ( KMP_DEREF level ) ? ( -1 ) : ( 1 );
646 return __kmp_get_team_size( __kmp_entry_gtid(), KMP_DEREF level );
651 xexpand(FTN_GET_THREAD_LIMIT)( void )
656 if ( ! __kmp_init_serial ) {
657 __kmp_serial_initialize();
660 return __kmp_max_nth;
665 xexpand(FTN_IN_FINAL)( void )
670 if ( ! TCR_4(__kmp_init_parallel) ) {
673 return __kmp_entry_thread() -> th.th_current_task -> td_flags.final;
680 kmp_proc_bind_t FTN_STDCALL
681 xexpand(FTN_GET_PROC_BIND)( void )
684 return __kmps_get_proc_bind();
686 return get__proc_bind( __kmp_entry_thread() );
691 xexpand(FTN_GET_NUM_TEAMS)( void )
696 kmp_info_t *thr = __kmp_entry_thread();
697 if ( thr->th.th_teams_microtask ) {
698 kmp_team_t *team = thr->th.th_team;
699 int tlevel = thr->th.th_teams_level;
700 int ii = team->t.t_level;
701 int dd = team -> t.t_serialized;
702 int level = tlevel + 1;
703 KMP_DEBUG_ASSERT( ii >= tlevel );
706 for( dd = team -> t.t_serialized; ( dd > 0 ) && ( ii > level ); dd--, ii-- )
709 if( team -> t.t_serialized && ( !dd ) ) {
710 team = team->t.t_parent;
714 team = team->t.t_parent;
721 return team->t.t_parent->t.t_nproc;
730 xexpand(FTN_GET_TEAM_NUM)( void )
735 kmp_info_t *thr = __kmp_entry_thread();
736 if ( thr->th.th_teams_microtask ) {
737 kmp_team_t *team = thr->th.th_team;
738 int tlevel = thr->th.th_teams_level;
739 int ii = team->t.t_level;
740 int dd = team -> t.t_serialized;
741 int level = tlevel + 1;
742 KMP_DEBUG_ASSERT( ii >= tlevel );
745 for( dd = team -> t.t_serialized; ( dd > 0 ) && ( ii > level ); dd--, ii-- )
748 if( team -> t.t_serialized && ( !dd ) ) {
749 team = team->t.t_parent;
753 team = team->t.t_parent;
760 return team->t.t_master_tid;
768 #if KMP_MIC || KMP_OS_DARWIN
770 static int __kmp_default_device = 0;
773 FTN_GET_DEFAULT_DEVICE(
void )
775 return __kmp_default_device;
779 FTN_SET_DEFAULT_DEVICE(
int KMP_DEREF arg )
781 __kmp_default_device = KMP_DEREF arg;
785 FTN_GET_NUM_DEVICES(
void )
790 #endif // KMP_MIC || KMP_OS_DARWIN
795 xexpand(FTN_IS_INITIAL_DEVICE)( void )
804 int _Offload_get_device_number(
void ) __attribute__((weak));
807 xexpand(FTN_IS_INITIAL_DEVICE)(
void )
809 if( _Offload_get_device_number ) {
810 return _Offload_get_device_number() == -1;
816 #endif // ! KMP_OS_LINUX
818 #endif // OMP_40_ENABLED
821 typedef enum { UNINIT = -1, UNLOCKED, LOCKED } kmp_stub_lock_t;
824 #if KMP_USE_DYNAMIC_LOCK
826 FTN_INIT_LOCK_HINTED(
void **user_lock,
int KMP_DEREF hint )
829 *((kmp_stub_lock_t *)user_lock) = UNLOCKED;
831 __kmp_init_lock_hinted( user_lock, KMP_DEREF hint );
836 FTN_INIT_NEST_LOCK_HINTED(
void **user_lock,
int KMP_DEREF hint )
839 *((kmp_stub_lock_t *)user_lock) = UNLOCKED;
841 __kmp_init_nest_lock_hinted( user_lock, KMP_DEREF hint );
848 xexpand(FTN_INIT_LOCK)(
void **user_lock )
851 *((kmp_stub_lock_t *)user_lock) = UNLOCKED;
853 __kmpc_init_lock( NULL, __kmp_entry_gtid(), user_lock );
859 xexpand(FTN_INIT_NEST_LOCK)(
void **user_lock )
862 *((kmp_stub_lock_t *)user_lock) = UNLOCKED;
864 __kmpc_init_nest_lock( NULL, __kmp_entry_gtid(), user_lock );
869 xexpand(FTN_DESTROY_LOCK)(
void **user_lock )
872 *((kmp_stub_lock_t *)user_lock) = UNINIT;
874 __kmpc_destroy_lock( NULL, __kmp_entry_gtid(), user_lock );
879 xexpand(FTN_DESTROY_NEST_LOCK)(
void **user_lock )
882 *((kmp_stub_lock_t *)user_lock) = UNINIT;
884 __kmpc_destroy_nest_lock( NULL, __kmp_entry_gtid(), user_lock );
889 xexpand(FTN_SET_LOCK)(
void **user_lock )
892 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
895 if ( *((kmp_stub_lock_t *)user_lock) != UNLOCKED ) {
898 *((kmp_stub_lock_t *)user_lock) = LOCKED;
900 __kmpc_set_lock( NULL, __kmp_entry_gtid(), user_lock );
905 xexpand(FTN_SET_NEST_LOCK)(
void **user_lock )
908 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
911 (*((
int *)user_lock))++;
913 __kmpc_set_nest_lock( NULL, __kmp_entry_gtid(), user_lock );
918 xexpand(FTN_UNSET_LOCK)(
void **user_lock )
921 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
924 if ( *((kmp_stub_lock_t *)user_lock) == UNLOCKED ) {
927 *((kmp_stub_lock_t *)user_lock) = UNLOCKED;
929 __kmpc_unset_lock( NULL, __kmp_entry_gtid(), user_lock );
934 xexpand(FTN_UNSET_NEST_LOCK)(
void **user_lock )
937 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
940 if ( *((kmp_stub_lock_t *)user_lock) == UNLOCKED ) {
943 (*((
int *)user_lock))--;
945 __kmpc_unset_nest_lock( NULL, __kmp_entry_gtid(), user_lock );
950 xexpand(FTN_TEST_LOCK)(
void **user_lock )
953 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
956 if ( *((kmp_stub_lock_t *)user_lock) == LOCKED ) {
959 *((kmp_stub_lock_t *)user_lock) = LOCKED;
962 return __kmpc_test_lock( NULL, __kmp_entry_gtid(), user_lock );
967 xexpand(FTN_TEST_NEST_LOCK)(
void **user_lock )
970 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
973 return ++(*((
int *)user_lock));
975 return __kmpc_test_nest_lock( NULL, __kmp_entry_gtid(), user_lock );
980 xexpand(FTN_GET_WTIME)( void )
983 return __kmps_get_wtime();
989 if ( ! __kmp_init_serial ) {
990 __kmp_serial_initialize();
993 __kmp_elapsed( & data );
999 xexpand(FTN_GET_WTICK)( void )
1002 return __kmps_get_wtick();
1005 if ( ! __kmp_init_serial ) {
1006 __kmp_serial_initialize();
1008 __kmp_elapsed_tick( & data );
1016 FTN_MALLOC(
size_t KMP_DEREF size )
1019 return kmpc_malloc( KMP_DEREF size );
1023 FTN_CALLOC(
size_t KMP_DEREF nelem,
size_t KMP_DEREF elsize )
1026 return kmpc_calloc( KMP_DEREF nelem, KMP_DEREF elsize );
1030 FTN_REALLOC(
void * KMP_DEREF ptr,
size_t KMP_DEREF size )
1033 return kmpc_realloc( KMP_DEREF ptr, KMP_DEREF size );
1037 FTN_FREE(
void * KMP_DEREF ptr )
1040 kmpc_free( KMP_DEREF ptr );
1044 FTN_SET_WARNINGS_ON(
void )
1047 __kmp_generate_warnings = kmp_warnings_explicit;
1052 FTN_SET_WARNINGS_OFF(
void )
1055 __kmp_generate_warnings = FALSE;
1060 FTN_SET_DEFAULTS(
char const * str
1061 #ifndef PASS_ARGS_BY_VALUE
1067 #ifdef PASS_ARGS_BY_VALUE
1068 int len = (int)KMP_STRLEN( str );
1070 __kmp_aux_set_defaults( str, len );
1080 xexpand(FTN_GET_CANCELLATION)(void) {
1085 if ( ! __kmp_init_serial ) {
1086 __kmp_serial_initialize();
1088 return __kmp_omp_cancellation;
1093 FTN_GET_CANCELLATION_STATUS(
int cancel_kind) {
1097 return __kmp_get_cancellation_status(cancel_kind);
1101 #endif // OMP_40_ENABLED
1104 #ifdef KMP_USE_VERSION_SYMBOLS
1123 xaliasify(FTN_SET_NUM_THREADS, 10);
1124 xaliasify(FTN_GET_NUM_THREADS, 10);
1125 xaliasify(FTN_GET_MAX_THREADS, 10);
1126 xaliasify(FTN_GET_THREAD_NUM, 10);
1127 xaliasify(FTN_GET_NUM_PROCS, 10);
1128 xaliasify(FTN_IN_PARALLEL, 10);
1129 xaliasify(FTN_SET_DYNAMIC, 10);
1130 xaliasify(FTN_GET_DYNAMIC, 10);
1131 xaliasify(FTN_SET_NESTED, 10);
1132 xaliasify(FTN_GET_NESTED, 10);
1133 xaliasify(FTN_INIT_LOCK, 10);
1134 xaliasify(FTN_INIT_NEST_LOCK, 10);
1135 xaliasify(FTN_DESTROY_LOCK, 10);
1136 xaliasify(FTN_DESTROY_NEST_LOCK, 10);
1137 xaliasify(FTN_SET_LOCK, 10);
1138 xaliasify(FTN_SET_NEST_LOCK, 10);
1139 xaliasify(FTN_UNSET_LOCK, 10);
1140 xaliasify(FTN_UNSET_NEST_LOCK, 10);
1141 xaliasify(FTN_TEST_LOCK, 10);
1142 xaliasify(FTN_TEST_NEST_LOCK, 10);
1145 xaliasify(FTN_GET_WTICK, 20);
1146 xaliasify(FTN_GET_WTIME, 20);
1149 xaliasify(FTN_SET_SCHEDULE, 30);
1150 xaliasify(FTN_GET_SCHEDULE, 30);
1151 xaliasify(FTN_GET_THREAD_LIMIT, 30);
1152 xaliasify(FTN_SET_MAX_ACTIVE_LEVELS, 30);
1153 xaliasify(FTN_GET_MAX_ACTIVE_LEVELS, 30);
1154 xaliasify(FTN_GET_LEVEL, 30);
1155 xaliasify(FTN_GET_ANCESTOR_THREAD_NUM, 30);
1156 xaliasify(FTN_GET_TEAM_SIZE, 30);
1157 xaliasify(FTN_GET_ACTIVE_LEVEL, 30);
1158 xaliasify(FTN_INIT_LOCK, 30);
1159 xaliasify(FTN_INIT_NEST_LOCK, 30);
1160 xaliasify(FTN_DESTROY_LOCK, 30);
1161 xaliasify(FTN_DESTROY_NEST_LOCK, 30);
1162 xaliasify(FTN_SET_LOCK, 30);
1163 xaliasify(FTN_SET_NEST_LOCK, 30);
1164 xaliasify(FTN_UNSET_LOCK, 30);
1165 xaliasify(FTN_UNSET_NEST_LOCK, 30);
1166 xaliasify(FTN_TEST_LOCK, 30);
1167 xaliasify(FTN_TEST_NEST_LOCK, 30);
1170 xaliasify(FTN_IN_FINAL, 31);
1174 xaliasify(FTN_GET_PROC_BIND, 40);
1175 xaliasify(FTN_GET_NUM_TEAMS, 40);
1176 xaliasify(FTN_GET_TEAM_NUM, 40);
1177 xaliasify(FTN_GET_CANCELLATION, 40);
1178 xaliasify(FTN_IS_INITIAL_DEVICE, 40);
1190 xversionify(FTN_SET_NUM_THREADS, 10,
"OMP_1.0");
1191 xversionify(FTN_GET_NUM_THREADS, 10,
"OMP_1.0");
1192 xversionify(FTN_GET_MAX_THREADS, 10,
"OMP_1.0");
1193 xversionify(FTN_GET_THREAD_NUM, 10,
"OMP_1.0");
1194 xversionify(FTN_GET_NUM_PROCS, 10,
"OMP_1.0");
1195 xversionify(FTN_IN_PARALLEL, 10,
"OMP_1.0");
1196 xversionify(FTN_SET_DYNAMIC, 10,
"OMP_1.0");
1197 xversionify(FTN_GET_DYNAMIC, 10,
"OMP_1.0");
1198 xversionify(FTN_SET_NESTED, 10,
"OMP_1.0");
1199 xversionify(FTN_GET_NESTED, 10,
"OMP_1.0");
1200 xversionify(FTN_INIT_LOCK, 10,
"OMP_1.0");
1201 xversionify(FTN_INIT_NEST_LOCK, 10,
"OMP_1.0");
1202 xversionify(FTN_DESTROY_LOCK, 10,
"OMP_1.0");
1203 xversionify(FTN_DESTROY_NEST_LOCK, 10,
"OMP_1.0");
1204 xversionify(FTN_SET_LOCK, 10,
"OMP_1.0");
1205 xversionify(FTN_SET_NEST_LOCK, 10,
"OMP_1.0");
1206 xversionify(FTN_UNSET_LOCK, 10,
"OMP_1.0");
1207 xversionify(FTN_UNSET_NEST_LOCK, 10,
"OMP_1.0");
1208 xversionify(FTN_TEST_LOCK, 10,
"OMP_1.0");
1209 xversionify(FTN_TEST_NEST_LOCK, 10,
"OMP_1.0");
1212 xversionify(FTN_GET_WTICK, 20,
"OMP_2.0");
1213 xversionify(FTN_GET_WTIME, 20,
"OMP_2.0");
1216 xversionify(FTN_SET_SCHEDULE, 30,
"OMP_3.0");
1217 xversionify(FTN_GET_SCHEDULE, 30,
"OMP_3.0");
1218 xversionify(FTN_GET_THREAD_LIMIT, 30,
"OMP_3.0");
1219 xversionify(FTN_SET_MAX_ACTIVE_LEVELS, 30,
"OMP_3.0");
1220 xversionify(FTN_GET_MAX_ACTIVE_LEVELS, 30,
"OMP_3.0");
1221 xversionify(FTN_GET_ANCESTOR_THREAD_NUM, 30,
"OMP_3.0");
1222 xversionify(FTN_GET_LEVEL, 30,
"OMP_3.0");
1223 xversionify(FTN_GET_TEAM_SIZE, 30,
"OMP_3.0");
1224 xversionify(FTN_GET_ACTIVE_LEVEL, 30,
"OMP_3.0");
1227 xversionify(FTN_INIT_LOCK, 30,
"OMP_3.0");
1228 xversionify(FTN_INIT_NEST_LOCK, 30,
"OMP_3.0");
1229 xversionify(FTN_DESTROY_LOCK, 30,
"OMP_3.0");
1230 xversionify(FTN_DESTROY_NEST_LOCK, 30,
"OMP_3.0");
1231 xversionify(FTN_SET_LOCK, 30,
"OMP_3.0");
1232 xversionify(FTN_SET_NEST_LOCK, 30,
"OMP_3.0");
1233 xversionify(FTN_UNSET_LOCK, 30,
"OMP_3.0");
1234 xversionify(FTN_UNSET_NEST_LOCK, 30,
"OMP_3.0");
1235 xversionify(FTN_TEST_LOCK, 30,
"OMP_3.0");
1236 xversionify(FTN_TEST_NEST_LOCK, 30,
"OMP_3.0");
1239 xversionify(FTN_IN_FINAL, 31,
"OMP_3.1");
1243 xversionify(FTN_GET_PROC_BIND, 40,
"OMP_4.0");
1244 xversionify(FTN_GET_NUM_TEAMS, 40,
"OMP_4.0");
1245 xversionify(FTN_GET_TEAM_NUM, 40,
"OMP_4.0");
1246 xversionify(FTN_GET_CANCELLATION, 40,
"OMP_4.0");
1247 xversionify(FTN_IS_INITIAL_DEVICE, 40,
"OMP_4.0");
1258 #endif // KMP_USE_VERSION_SYMBOLS
1262 #endif // __cplusplus
KMP_EXPORT kmp_int32 __kmpc_bound_num_threads(ident_t *)