17 # error The support file kmp_ftn_entry.h should not be compiled by itself. 40 #ifdef KMP_GOMP_COMPAT 41 # if (KMP_FTN_ENTRIES == KMP_FTN_PLAIN) || (KMP_FTN_ENTRIES == KMP_FTN_UPPER) 42 # define PASS_ARGS_BY_VALUE 1 46 # if (KMP_FTN_ENTRIES == KMP_FTN_PLAIN) || (KMP_FTN_ENTRIES == KMP_FTN_APPEND) 47 # define PASS_ARGS_BY_VALUE 1 52 #ifdef PASS_ARGS_BY_VALUE 59 FTN_SET_STACKSIZE(
int KMP_DEREF arg )
62 __kmps_set_stacksize( KMP_DEREF arg );
65 __kmp_aux_set_stacksize( (
size_t) KMP_DEREF arg );
70 FTN_SET_STACKSIZE_S(
size_t KMP_DEREF arg )
73 __kmps_set_stacksize( KMP_DEREF arg );
76 __kmp_aux_set_stacksize( KMP_DEREF arg );
81 FTN_GET_STACKSIZE(
void )
84 return __kmps_get_stacksize();
86 if ( ! __kmp_init_serial ) {
87 __kmp_serial_initialize();
89 return (
int)__kmp_stksize;
94 FTN_GET_STACKSIZE_S(
void )
97 return __kmps_get_stacksize();
99 if ( ! __kmp_init_serial ) {
100 __kmp_serial_initialize();
102 return __kmp_stksize;
107 FTN_SET_BLOCKTIME(
int KMP_DEREF arg )
110 __kmps_set_blocktime( KMP_DEREF arg );
115 gtid = __kmp_entry_gtid();
116 tid = __kmp_tid_from_gtid(gtid);
117 thread = __kmp_thread_from_gtid(gtid);
119 __kmp_aux_set_blocktime( KMP_DEREF arg, thread, tid );
124 FTN_GET_BLOCKTIME(
void )
127 return __kmps_get_blocktime();
133 gtid = __kmp_entry_gtid();
134 tid = __kmp_tid_from_gtid(gtid);
135 thread = __kmp_thread_from_gtid(gtid);
136 team = __kmp_threads[ gtid ] -> th.th_team;
139 if ( __kmp_dflt_blocktime == KMP_MAX_BLOCKTIME ) {
140 KF_TRACE(10, (
"kmp_get_blocktime: T#%d(%d:%d), blocktime=%d\n",
141 gtid, team->t.t_id, tid, KMP_MAX_BLOCKTIME) );
142 return KMP_MAX_BLOCKTIME;
144 #ifdef KMP_ADJUST_BLOCKTIME 145 else if ( __kmp_zero_bt && !get__bt_set( team, tid ) ) {
146 KF_TRACE(10, (
"kmp_get_blocktime: T#%d(%d:%d), blocktime=%d\n",
147 gtid, team->t.t_id, tid, 0) );
152 KF_TRACE(10, (
"kmp_get_blocktime: T#%d(%d:%d), blocktime=%d\n",
153 gtid, team->t.t_id, tid, get__blocktime( team, tid ) ) );
154 return get__blocktime( team, tid );
160 FTN_SET_LIBRARY_SERIAL(
void )
163 __kmps_set_library( library_serial );
166 __kmp_user_set_library( library_serial );
171 FTN_SET_LIBRARY_TURNAROUND(
void )
174 __kmps_set_library( library_turnaround );
177 __kmp_user_set_library( library_turnaround );
182 FTN_SET_LIBRARY_THROUGHPUT(
void )
185 __kmps_set_library( library_throughput );
188 __kmp_user_set_library( library_throughput );
193 FTN_SET_LIBRARY(
int KMP_DEREF arg )
196 __kmps_set_library( KMP_DEREF arg );
198 enum library_type lib;
199 lib = (
enum library_type) KMP_DEREF arg;
201 __kmp_user_set_library( lib );
206 FTN_GET_LIBRARY (
void)
209 return __kmps_get_library();
211 if ( ! __kmp_init_serial ) {
212 __kmp_serial_initialize();
214 return ((
int) __kmp_library);
219 FTN_SET_AFFINITY(
void **mask )
221 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED 224 if ( ! TCR_4(__kmp_init_middle) ) {
225 __kmp_middle_initialize();
227 return __kmp_aux_set_affinity( mask );
232 FTN_GET_AFFINITY(
void **mask )
234 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED 237 if ( ! TCR_4(__kmp_init_middle) ) {
238 __kmp_middle_initialize();
240 return __kmp_aux_get_affinity( mask );
245 FTN_GET_AFFINITY_MAX_PROC(
void )
247 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED 253 if ( ! TCR_4(__kmp_init_middle) ) {
254 __kmp_middle_initialize();
256 if ( ! ( KMP_AFFINITY_CAPABLE() ) ) {
260 #if KMP_GROUP_AFFINITY && !KMP_USE_HWLOC 261 if ( __kmp_num_proc_groups > 1 ) {
262 return (
int)KMP_CPU_SETSIZE;
270 FTN_CREATE_AFFINITY_MASK(
void **mask )
272 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED 278 if ( ! TCR_4(__kmp_init_middle) ) {
279 __kmp_middle_initialize();
282 *mask = (hwloc_cpuset_t)hwloc_bitmap_alloc();
284 *mask = kmpc_malloc( __kmp_affin_mask_size );
286 KMP_CPU_ZERO( (kmp_affin_mask_t *)(*mask) );
291 FTN_DESTROY_AFFINITY_MASK(
void **mask )
293 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED 299 if ( ! TCR_4(__kmp_init_middle) ) {
300 __kmp_middle_initialize();
302 if ( __kmp_env_consistency_check ) {
303 if ( *mask == NULL ) {
304 KMP_FATAL( AffinityInvalidMask,
"kmp_destroy_affinity_mask" );
308 hwloc_bitmap_free((hwloc_cpuset_t)(*mask));
317 FTN_SET_AFFINITY_MASK_PROC(
int KMP_DEREF proc,
void **mask )
319 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED 322 if ( ! TCR_4(__kmp_init_middle) ) {
323 __kmp_middle_initialize();
325 return __kmp_aux_set_affinity_mask_proc( KMP_DEREF proc, mask );
330 FTN_UNSET_AFFINITY_MASK_PROC(
int KMP_DEREF proc,
void **mask )
332 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED 335 if ( ! TCR_4(__kmp_init_middle) ) {
336 __kmp_middle_initialize();
338 return __kmp_aux_unset_affinity_mask_proc( KMP_DEREF proc, mask );
343 FTN_GET_AFFINITY_MASK_PROC(
int KMP_DEREF proc,
void **mask )
345 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED 348 if ( ! TCR_4(__kmp_init_middle) ) {
349 __kmp_middle_initialize();
351 return __kmp_aux_get_affinity_mask_proc( KMP_DEREF proc, mask );
361 xexpand(FTN_SET_NUM_THREADS)(
int KMP_DEREF arg )
366 __kmp_set_num_threads( KMP_DEREF arg, __kmp_entry_gtid() );
373 xexpand(FTN_GET_NUM_THREADS)( void )
384 xexpand(FTN_GET_MAX_THREADS)( void )
391 if ( ! TCR_4(__kmp_init_middle) ) {
392 __kmp_middle_initialize();
394 gtid = __kmp_entry_gtid();
395 thread = __kmp_threads[ gtid ];
397 return thread -> th.th_current_task -> td_icvs.nproc;
402 xexpand(FTN_GET_THREAD_NUM)( void )
409 #if KMP_OS_DARWIN || KMP_OS_FREEBSD || KMP_OS_NETBSD 410 gtid = __kmp_entry_gtid();
412 if (!__kmp_init_parallel ||
413 (gtid = (
int)((kmp_intptr_t)TlsGetValue( __kmp_gtid_threadprivate_key ))) == 0) {
420 #ifdef KMP_TDATA_GTID 421 if ( __kmp_gtid_mode >= 3 ) {
422 if ((gtid = __kmp_gtid) == KMP_GTID_DNE) {
427 if (!__kmp_init_parallel ||
428 (gtid = (kmp_intptr_t)(pthread_getspecific( __kmp_gtid_threadprivate_key ))) == 0) {
432 #ifdef KMP_TDATA_GTID 436 #error Unknown or unsupported OS 439 return __kmp_tid_from_gtid( gtid );
444 FTN_GET_NUM_KNOWN_THREADS(
void )
449 if ( ! __kmp_init_serial ) {
450 __kmp_serial_initialize();
454 return TCR_4(__kmp_nth);
459 xexpand(FTN_GET_NUM_PROCS)( void )
464 if ( ! TCR_4(__kmp_init_middle) ) {
465 __kmp_middle_initialize();
467 return __kmp_avail_proc;
472 xexpand(FTN_SET_NESTED)(
int KMP_DEREF flag )
475 __kmps_set_nested( KMP_DEREF flag );
479 thread = __kmp_entry_thread();
480 __kmp_save_internal_controls( thread );
481 set__nested( thread, ( (KMP_DEREF flag) ? TRUE : FALSE ) );
487 xexpand(FTN_GET_NESTED)( void )
490 return __kmps_get_nested();
493 thread = __kmp_entry_thread();
494 return get__nested( thread );
499 xexpand(FTN_SET_DYNAMIC)(
int KMP_DEREF flag )
502 __kmps_set_dynamic( KMP_DEREF flag ? TRUE : FALSE );
506 thread = __kmp_entry_thread();
508 __kmp_save_internal_controls( thread );
509 set__dynamic( thread, KMP_DEREF flag ? TRUE : FALSE );
515 xexpand(FTN_GET_DYNAMIC)( void )
518 return __kmps_get_dynamic();
521 thread = __kmp_entry_thread();
522 return get__dynamic( thread );
527 xexpand(FTN_IN_PARALLEL)( void )
532 kmp_info_t *th = __kmp_entry_thread();
534 if ( th->th.th_teams_microtask ) {
539 return ( th->th.th_team->t.t_active_level ? 1 : 0 );
543 return ( th->th.th_root->r.r_in_parallel ? FTN_TRUE : FTN_FALSE );
548 xexpand(FTN_SET_SCHEDULE)( kmp_sched_t KMP_DEREF kind,
int KMP_DEREF modifier )
551 __kmps_set_schedule( KMP_DEREF kind, KMP_DEREF modifier );
555 __kmp_set_schedule( __kmp_entry_gtid(), KMP_DEREF kind, KMP_DEREF modifier );
560 xexpand(FTN_GET_SCHEDULE)( kmp_sched_t * kind,
int * modifier )
563 __kmps_get_schedule( kind, modifier );
567 __kmp_get_schedule( __kmp_entry_gtid(), kind, modifier );
572 xexpand(FTN_SET_MAX_ACTIVE_LEVELS)(
int KMP_DEREF arg )
579 __kmp_set_max_active_levels( __kmp_entry_gtid(), KMP_DEREF arg );
584 xexpand(FTN_GET_MAX_ACTIVE_LEVELS)( void )
591 return __kmp_get_max_active_levels( __kmp_entry_gtid() );
596 xexpand(FTN_GET_ACTIVE_LEVEL)( void )
603 return __kmp_entry_thread() -> th.th_team -> t.t_active_level;
608 xexpand(FTN_GET_LEVEL)( void )
615 return __kmp_entry_thread() -> th.th_team -> t.t_level;
620 xexpand(FTN_GET_ANCESTOR_THREAD_NUM)(
int KMP_DEREF level )
623 return ( KMP_DEREF level ) ? ( -1 ) : ( 0 );
625 return __kmp_get_ancestor_thread_num( __kmp_entry_gtid(), KMP_DEREF level );
630 xexpand(FTN_GET_TEAM_SIZE)(
int KMP_DEREF level )
633 return ( KMP_DEREF level ) ? ( -1 ) : ( 1 );
635 return __kmp_get_team_size( __kmp_entry_gtid(), KMP_DEREF level );
640 xexpand(FTN_GET_THREAD_LIMIT)( void )
645 if ( ! __kmp_init_serial ) {
646 __kmp_serial_initialize();
649 return __kmp_max_nth;
654 xexpand(FTN_IN_FINAL)( void )
659 if ( ! TCR_4(__kmp_init_parallel) ) {
662 return __kmp_entry_thread() -> th.th_current_task -> td_flags.final;
669 kmp_proc_bind_t FTN_STDCALL
670 xexpand(FTN_GET_PROC_BIND)( void )
673 return __kmps_get_proc_bind();
675 return get__proc_bind( __kmp_entry_thread() );
680 xexpand(FTN_GET_NUM_TEAMS)( void )
685 kmp_info_t *thr = __kmp_entry_thread();
686 if ( thr->th.th_teams_microtask ) {
687 kmp_team_t *team = thr->th.th_team;
688 int tlevel = thr->th.th_teams_level;
689 int ii = team->t.t_level;
690 int dd = team -> t.t_serialized;
691 int level = tlevel + 1;
692 KMP_DEBUG_ASSERT( ii >= tlevel );
695 for( dd = team -> t.t_serialized; ( dd > 0 ) && ( ii > level ); dd--, ii-- )
698 if( team -> t.t_serialized && ( !dd ) ) {
699 team = team->t.t_parent;
703 team = team->t.t_parent;
710 return team->t.t_parent->t.t_nproc;
719 xexpand(FTN_GET_TEAM_NUM)( void )
724 kmp_info_t *thr = __kmp_entry_thread();
725 if ( thr->th.th_teams_microtask ) {
726 kmp_team_t *team = thr->th.th_team;
727 int tlevel = thr->th.th_teams_level;
728 int ii = team->t.t_level;
729 int dd = team -> t.t_serialized;
730 int level = tlevel + 1;
731 KMP_DEBUG_ASSERT( ii >= tlevel );
734 for( dd = team -> t.t_serialized; ( dd > 0 ) && ( ii > level ); dd--, ii-- )
737 if( team -> t.t_serialized && ( !dd ) ) {
738 team = team->t.t_parent;
742 team = team->t.t_parent;
749 return team->t.t_master_tid;
757 #if KMP_MIC || KMP_OS_DARWIN 759 static int __kmp_default_device = 0;
762 FTN_GET_DEFAULT_DEVICE(
void )
764 return __kmp_default_device;
768 FTN_SET_DEFAULT_DEVICE(
int KMP_DEREF arg )
770 __kmp_default_device = KMP_DEREF arg;
774 FTN_GET_NUM_DEVICES(
void )
779 #endif // KMP_MIC || KMP_OS_DARWIN 784 xexpand(FTN_IS_INITIAL_DEVICE)( void )
793 int _Offload_get_device_number(
void ) __attribute__((weak));
796 xexpand(FTN_IS_INITIAL_DEVICE)(
void )
798 if( _Offload_get_device_number ) {
799 return _Offload_get_device_number() == -1;
805 #endif // ! KMP_OS_LINUX 807 #endif // OMP_40_ENABLED 810 typedef enum { UNINIT = -1, UNLOCKED, LOCKED } kmp_stub_lock_t;
813 #if KMP_USE_DYNAMIC_LOCK 815 FTN_INIT_LOCK_WITH_HINT(
void **user_lock, uintptr_t KMP_DEREF hint )
818 *((kmp_stub_lock_t *)user_lock) = UNLOCKED;
820 __kmpc_init_lock_with_hint( NULL, __kmp_entry_gtid(), user_lock, KMP_DEREF hint );
825 FTN_INIT_NEST_LOCK_WITH_HINT(
void **user_lock, uintptr_t KMP_DEREF hint )
828 *((kmp_stub_lock_t *)user_lock) = UNLOCKED;
830 __kmpc_init_nest_lock_with_hint( NULL, __kmp_entry_gtid(), user_lock, KMP_DEREF hint );
837 xexpand(FTN_INIT_LOCK)(
void **user_lock )
840 *((kmp_stub_lock_t *)user_lock) = UNLOCKED;
842 __kmpc_init_lock( NULL, __kmp_entry_gtid(), user_lock );
848 xexpand(FTN_INIT_NEST_LOCK)(
void **user_lock )
851 *((kmp_stub_lock_t *)user_lock) = UNLOCKED;
853 __kmpc_init_nest_lock( NULL, __kmp_entry_gtid(), user_lock );
858 xexpand(FTN_DESTROY_LOCK)(
void **user_lock )
861 *((kmp_stub_lock_t *)user_lock) = UNINIT;
863 __kmpc_destroy_lock( NULL, __kmp_entry_gtid(), user_lock );
868 xexpand(FTN_DESTROY_NEST_LOCK)(
void **user_lock )
871 *((kmp_stub_lock_t *)user_lock) = UNINIT;
873 __kmpc_destroy_nest_lock( NULL, __kmp_entry_gtid(), user_lock );
878 xexpand(FTN_SET_LOCK)(
void **user_lock )
881 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
884 if ( *((kmp_stub_lock_t *)user_lock) != UNLOCKED ) {
887 *((kmp_stub_lock_t *)user_lock) = LOCKED;
889 __kmpc_set_lock( NULL, __kmp_entry_gtid(), user_lock );
894 xexpand(FTN_SET_NEST_LOCK)(
void **user_lock )
897 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
900 (*((
int *)user_lock))++;
902 __kmpc_set_nest_lock( NULL, __kmp_entry_gtid(), user_lock );
907 xexpand(FTN_UNSET_LOCK)(
void **user_lock )
910 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
913 if ( *((kmp_stub_lock_t *)user_lock) == UNLOCKED ) {
916 *((kmp_stub_lock_t *)user_lock) = UNLOCKED;
918 __kmpc_unset_lock( NULL, __kmp_entry_gtid(), user_lock );
923 xexpand(FTN_UNSET_NEST_LOCK)(
void **user_lock )
926 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
929 if ( *((kmp_stub_lock_t *)user_lock) == UNLOCKED ) {
932 (*((
int *)user_lock))--;
934 __kmpc_unset_nest_lock( NULL, __kmp_entry_gtid(), user_lock );
939 xexpand(FTN_TEST_LOCK)(
void **user_lock )
942 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
945 if ( *((kmp_stub_lock_t *)user_lock) == LOCKED ) {
948 *((kmp_stub_lock_t *)user_lock) = LOCKED;
951 return __kmpc_test_lock( NULL, __kmp_entry_gtid(), user_lock );
956 xexpand(FTN_TEST_NEST_LOCK)(
void **user_lock )
959 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
962 return ++(*((
int *)user_lock));
964 return __kmpc_test_nest_lock( NULL, __kmp_entry_gtid(), user_lock );
969 xexpand(FTN_GET_WTIME)( void )
972 return __kmps_get_wtime();
978 if ( ! __kmp_init_serial ) {
979 __kmp_serial_initialize();
982 __kmp_elapsed( & data );
988 xexpand(FTN_GET_WTICK)( void )
991 return __kmps_get_wtick();
994 if ( ! __kmp_init_serial ) {
995 __kmp_serial_initialize();
997 __kmp_elapsed_tick( & data );
1005 FTN_MALLOC(
size_t KMP_DEREF size )
1008 return kmpc_malloc( KMP_DEREF size );
1012 FTN_CALLOC(
size_t KMP_DEREF nelem,
size_t KMP_DEREF elsize )
1015 return kmpc_calloc( KMP_DEREF nelem, KMP_DEREF elsize );
1019 FTN_REALLOC(
void * KMP_DEREF ptr,
size_t KMP_DEREF size )
1022 return kmpc_realloc( KMP_DEREF ptr, KMP_DEREF size );
1026 FTN_FREE(
void * KMP_DEREF ptr )
1029 kmpc_free( KMP_DEREF ptr );
1033 FTN_SET_WARNINGS_ON(
void )
1036 __kmp_generate_warnings = kmp_warnings_explicit;
1041 FTN_SET_WARNINGS_OFF(
void )
1044 __kmp_generate_warnings = FALSE;
1049 FTN_SET_DEFAULTS(
char const * str
1050 #ifndef PASS_ARGS_BY_VALUE
1056 #ifdef PASS_ARGS_BY_VALUE 1057 int len = (int)KMP_STRLEN( str );
1059 __kmp_aux_set_defaults( str, len );
1069 xexpand(FTN_GET_CANCELLATION)(void) {
1074 if ( ! __kmp_init_serial ) {
1075 __kmp_serial_initialize();
1077 return __kmp_omp_cancellation;
1082 FTN_GET_CANCELLATION_STATUS(
int cancel_kind) {
1086 return __kmp_get_cancellation_status(cancel_kind);
1090 #endif // OMP_40_ENABLED 1093 #ifdef KMP_USE_VERSION_SYMBOLS 1112 xaliasify(FTN_SET_NUM_THREADS, 10);
1113 xaliasify(FTN_GET_NUM_THREADS, 10);
1114 xaliasify(FTN_GET_MAX_THREADS, 10);
1115 xaliasify(FTN_GET_THREAD_NUM, 10);
1116 xaliasify(FTN_GET_NUM_PROCS, 10);
1117 xaliasify(FTN_IN_PARALLEL, 10);
1118 xaliasify(FTN_SET_DYNAMIC, 10);
1119 xaliasify(FTN_GET_DYNAMIC, 10);
1120 xaliasify(FTN_SET_NESTED, 10);
1121 xaliasify(FTN_GET_NESTED, 10);
1122 xaliasify(FTN_INIT_LOCK, 10);
1123 xaliasify(FTN_INIT_NEST_LOCK, 10);
1124 xaliasify(FTN_DESTROY_LOCK, 10);
1125 xaliasify(FTN_DESTROY_NEST_LOCK, 10);
1126 xaliasify(FTN_SET_LOCK, 10);
1127 xaliasify(FTN_SET_NEST_LOCK, 10);
1128 xaliasify(FTN_UNSET_LOCK, 10);
1129 xaliasify(FTN_UNSET_NEST_LOCK, 10);
1130 xaliasify(FTN_TEST_LOCK, 10);
1131 xaliasify(FTN_TEST_NEST_LOCK, 10);
1134 xaliasify(FTN_GET_WTICK, 20);
1135 xaliasify(FTN_GET_WTIME, 20);
1138 xaliasify(FTN_SET_SCHEDULE, 30);
1139 xaliasify(FTN_GET_SCHEDULE, 30);
1140 xaliasify(FTN_GET_THREAD_LIMIT, 30);
1141 xaliasify(FTN_SET_MAX_ACTIVE_LEVELS, 30);
1142 xaliasify(FTN_GET_MAX_ACTIVE_LEVELS, 30);
1143 xaliasify(FTN_GET_LEVEL, 30);
1144 xaliasify(FTN_GET_ANCESTOR_THREAD_NUM, 30);
1145 xaliasify(FTN_GET_TEAM_SIZE, 30);
1146 xaliasify(FTN_GET_ACTIVE_LEVEL, 30);
1147 xaliasify(FTN_INIT_LOCK, 30);
1148 xaliasify(FTN_INIT_NEST_LOCK, 30);
1149 xaliasify(FTN_DESTROY_LOCK, 30);
1150 xaliasify(FTN_DESTROY_NEST_LOCK, 30);
1151 xaliasify(FTN_SET_LOCK, 30);
1152 xaliasify(FTN_SET_NEST_LOCK, 30);
1153 xaliasify(FTN_UNSET_LOCK, 30);
1154 xaliasify(FTN_UNSET_NEST_LOCK, 30);
1155 xaliasify(FTN_TEST_LOCK, 30);
1156 xaliasify(FTN_TEST_NEST_LOCK, 30);
1159 xaliasify(FTN_IN_FINAL, 31);
1163 xaliasify(FTN_GET_PROC_BIND, 40);
1164 xaliasify(FTN_GET_NUM_TEAMS, 40);
1165 xaliasify(FTN_GET_TEAM_NUM, 40);
1166 xaliasify(FTN_GET_CANCELLATION, 40);
1167 xaliasify(FTN_IS_INITIAL_DEVICE, 40);
1179 xversionify(FTN_SET_NUM_THREADS, 10,
"OMP_1.0");
1180 xversionify(FTN_GET_NUM_THREADS, 10,
"OMP_1.0");
1181 xversionify(FTN_GET_MAX_THREADS, 10,
"OMP_1.0");
1182 xversionify(FTN_GET_THREAD_NUM, 10,
"OMP_1.0");
1183 xversionify(FTN_GET_NUM_PROCS, 10,
"OMP_1.0");
1184 xversionify(FTN_IN_PARALLEL, 10,
"OMP_1.0");
1185 xversionify(FTN_SET_DYNAMIC, 10,
"OMP_1.0");
1186 xversionify(FTN_GET_DYNAMIC, 10,
"OMP_1.0");
1187 xversionify(FTN_SET_NESTED, 10,
"OMP_1.0");
1188 xversionify(FTN_GET_NESTED, 10,
"OMP_1.0");
1189 xversionify(FTN_INIT_LOCK, 10,
"OMP_1.0");
1190 xversionify(FTN_INIT_NEST_LOCK, 10,
"OMP_1.0");
1191 xversionify(FTN_DESTROY_LOCK, 10,
"OMP_1.0");
1192 xversionify(FTN_DESTROY_NEST_LOCK, 10,
"OMP_1.0");
1193 xversionify(FTN_SET_LOCK, 10,
"OMP_1.0");
1194 xversionify(FTN_SET_NEST_LOCK, 10,
"OMP_1.0");
1195 xversionify(FTN_UNSET_LOCK, 10,
"OMP_1.0");
1196 xversionify(FTN_UNSET_NEST_LOCK, 10,
"OMP_1.0");
1197 xversionify(FTN_TEST_LOCK, 10,
"OMP_1.0");
1198 xversionify(FTN_TEST_NEST_LOCK, 10,
"OMP_1.0");
1201 xversionify(FTN_GET_WTICK, 20,
"OMP_2.0");
1202 xversionify(FTN_GET_WTIME, 20,
"OMP_2.0");
1205 xversionify(FTN_SET_SCHEDULE, 30,
"OMP_3.0");
1206 xversionify(FTN_GET_SCHEDULE, 30,
"OMP_3.0");
1207 xversionify(FTN_GET_THREAD_LIMIT, 30,
"OMP_3.0");
1208 xversionify(FTN_SET_MAX_ACTIVE_LEVELS, 30,
"OMP_3.0");
1209 xversionify(FTN_GET_MAX_ACTIVE_LEVELS, 30,
"OMP_3.0");
1210 xversionify(FTN_GET_ANCESTOR_THREAD_NUM, 30,
"OMP_3.0");
1211 xversionify(FTN_GET_LEVEL, 30,
"OMP_3.0");
1212 xversionify(FTN_GET_TEAM_SIZE, 30,
"OMP_3.0");
1213 xversionify(FTN_GET_ACTIVE_LEVEL, 30,
"OMP_3.0");
1216 xversionify(FTN_INIT_LOCK, 30,
"OMP_3.0");
1217 xversionify(FTN_INIT_NEST_LOCK, 30,
"OMP_3.0");
1218 xversionify(FTN_DESTROY_LOCK, 30,
"OMP_3.0");
1219 xversionify(FTN_DESTROY_NEST_LOCK, 30,
"OMP_3.0");
1220 xversionify(FTN_SET_LOCK, 30,
"OMP_3.0");
1221 xversionify(FTN_SET_NEST_LOCK, 30,
"OMP_3.0");
1222 xversionify(FTN_UNSET_LOCK, 30,
"OMP_3.0");
1223 xversionify(FTN_UNSET_NEST_LOCK, 30,
"OMP_3.0");
1224 xversionify(FTN_TEST_LOCK, 30,
"OMP_3.0");
1225 xversionify(FTN_TEST_NEST_LOCK, 30,
"OMP_3.0");
1228 xversionify(FTN_IN_FINAL, 31,
"OMP_3.1");
1232 xversionify(FTN_GET_PROC_BIND, 40,
"OMP_4.0");
1233 xversionify(FTN_GET_NUM_TEAMS, 40,
"OMP_4.0");
1234 xversionify(FTN_GET_TEAM_NUM, 40,
"OMP_4.0");
1235 xversionify(FTN_GET_CANCELLATION, 40,
"OMP_4.0");
1236 xversionify(FTN_IS_INITIAL_DEVICE, 40,
"OMP_4.0");
1247 #endif // KMP_USE_VERSION_SYMBOLS 1251 #endif // __cplusplus KMP_EXPORT kmp_int32 __kmpc_bound_num_threads(ident_t *)