38 # error The support file kmp_ftn_entry.h should not be compiled by itself.
61 #ifdef KMP_GOMP_COMPAT
62 # if (KMP_FTN_ENTRIES == KMP_FTN_PLAIN) || (KMP_FTN_ENTRIES == KMP_FTN_UPPER)
63 # define PASS_ARGS_BY_VALUE 1
67 # if (KMP_FTN_ENTRIES == KMP_FTN_PLAIN) || (KMP_FTN_ENTRIES == KMP_FTN_APPEND)
68 # define PASS_ARGS_BY_VALUE 1
73 #ifdef PASS_ARGS_BY_VALUE
80 FTN_SET_STACKSIZE(
int KMP_DEREF arg )
83 __kmps_set_stacksize( KMP_DEREF arg );
86 __kmp_aux_set_stacksize( (
size_t) KMP_DEREF arg );
91 FTN_SET_STACKSIZE_S(
size_t KMP_DEREF arg )
94 __kmps_set_stacksize( KMP_DEREF arg );
97 __kmp_aux_set_stacksize( KMP_DEREF arg );
102 FTN_GET_STACKSIZE(
void )
105 return __kmps_get_stacksize();
107 if ( ! __kmp_init_serial ) {
108 __kmp_serial_initialize();
110 return (
int)__kmp_stksize;
115 FTN_GET_STACKSIZE_S(
void )
118 return __kmps_get_stacksize();
120 if ( ! __kmp_init_serial ) {
121 __kmp_serial_initialize();
123 return __kmp_stksize;
128 FTN_SET_BLOCKTIME(
int KMP_DEREF arg )
131 __kmps_set_blocktime( KMP_DEREF arg );
136 gtid = __kmp_entry_gtid();
137 tid = __kmp_tid_from_gtid(gtid);
138 thread = __kmp_thread_from_gtid(gtid);
140 __kmp_aux_set_blocktime( KMP_DEREF arg, thread, tid );
145 FTN_GET_BLOCKTIME(
void )
148 return __kmps_get_blocktime();
154 gtid = __kmp_entry_gtid();
155 tid = __kmp_tid_from_gtid(gtid);
156 thread = __kmp_thread_from_gtid(gtid);
157 team = __kmp_threads[ gtid ] -> th.th_team;
160 if ( __kmp_dflt_blocktime == KMP_MAX_BLOCKTIME ) {
161 KF_TRACE(10, (
"kmp_get_blocktime: T#%d(%d:%d), blocktime=%d\n",
162 gtid, team->t.t_id, tid, KMP_MAX_BLOCKTIME) );
163 return KMP_MAX_BLOCKTIME;
165 #ifdef KMP_ADJUST_BLOCKTIME
166 else if ( __kmp_zero_bt && !get__bt_set( team, tid ) ) {
167 KF_TRACE(10, (
"kmp_get_blocktime: T#%d(%d:%d), blocktime=%d\n",
168 gtid, team->t.t_id, tid, 0) );
173 KF_TRACE(10, (
"kmp_get_blocktime: T#%d(%d:%d), blocktime=%d\n",
174 gtid, team->t.t_id, tid, get__blocktime( team, tid ) ) );
175 return get__blocktime( team, tid );
181 FTN_SET_LIBRARY_SERIAL(
void )
184 __kmps_set_library( library_serial );
187 __kmp_user_set_library( library_serial );
192 FTN_SET_LIBRARY_TURNAROUND(
void )
195 __kmps_set_library( library_turnaround );
198 __kmp_user_set_library( library_turnaround );
203 FTN_SET_LIBRARY_THROUGHPUT(
void )
206 __kmps_set_library( library_throughput );
209 __kmp_user_set_library( library_throughput );
214 FTN_SET_LIBRARY(
int KMP_DEREF arg )
217 __kmps_set_library( KMP_DEREF arg );
219 enum library_type lib;
220 lib = (
enum library_type) KMP_DEREF arg;
222 __kmp_user_set_library( lib );
227 FTN_GET_LIBRARY (
void)
230 return __kmps_get_library();
232 if ( ! __kmp_init_serial ) {
233 __kmp_serial_initialize();
235 return ((
int) __kmp_library);
240 FTN_SET_AFFINITY(
void **mask )
242 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
245 if ( ! TCR_4(__kmp_init_middle) ) {
246 __kmp_middle_initialize();
248 return __kmp_aux_set_affinity( mask );
253 FTN_GET_AFFINITY(
void **mask )
255 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
258 if ( ! TCR_4(__kmp_init_middle) ) {
259 __kmp_middle_initialize();
261 return __kmp_aux_get_affinity( mask );
266 FTN_GET_AFFINITY_MAX_PROC(
void )
268 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
274 if ( ! TCR_4(__kmp_init_middle) ) {
275 __kmp_middle_initialize();
277 if ( ! ( KMP_AFFINITY_CAPABLE() ) ) {
281 #if KMP_OS_WINDOWS && KMP_ARCH_X86_64
282 if ( __kmp_num_proc_groups <= 1 ) {
283 return (
int)KMP_CPU_SETSIZE;
291 FTN_CREATE_AFFINITY_MASK(
void **mask )
293 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
299 if ( ! TCR_4(__kmp_init_middle) ) {
300 __kmp_middle_initialize();
302 *mask = kmpc_malloc( __kmp_affin_mask_size );
303 KMP_CPU_ZERO( (kmp_affin_mask_t *)(*mask) );
308 FTN_DESTROY_AFFINITY_MASK(
void **mask )
310 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
316 if ( ! TCR_4(__kmp_init_middle) ) {
317 __kmp_middle_initialize();
319 if ( __kmp_env_consistency_check ) {
320 if ( *mask == NULL ) {
321 KMP_FATAL( AffinityInvalidMask,
"kmp_destroy_affinity_mask" );
330 FTN_SET_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_set_affinity_mask_proc( KMP_DEREF proc, mask );
343 FTN_UNSET_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_unset_affinity_mask_proc( KMP_DEREF proc, mask );
356 FTN_GET_AFFINITY_MASK_PROC(
int KMP_DEREF proc,
void **mask )
358 #if defined(KMP_STUB) || !KMP_AFFINITY_SUPPORTED
361 if ( ! TCR_4(__kmp_init_middle) ) {
362 __kmp_middle_initialize();
364 return __kmp_aux_get_affinity_mask_proc( KMP_DEREF proc, mask );
374 xexpand(FTN_SET_NUM_THREADS)(
int KMP_DEREF arg )
379 __kmp_set_num_threads( KMP_DEREF arg, __kmp_entry_gtid() );
386 xexpand(FTN_GET_NUM_THREADS)( void )
397 xexpand(FTN_GET_MAX_THREADS)( void )
404 if ( ! TCR_4(__kmp_init_middle) ) {
405 __kmp_middle_initialize();
407 gtid = __kmp_entry_gtid();
408 thread = __kmp_threads[ gtid ];
410 return thread -> th.th_current_task -> td_icvs.nproc;
415 xexpand(FTN_GET_THREAD_NUM)( void )
422 #if KMP_OS_DARWIN || KMP_OS_FREEBSD
423 gtid = __kmp_entry_gtid();
425 if (!__kmp_init_parallel ||
426 (gtid = (
int)((kmp_intptr_t)TlsGetValue( __kmp_gtid_threadprivate_key ))) == 0) {
433 #ifdef KMP_TDATA_GTID
434 if ( __kmp_gtid_mode >= 3 ) {
435 if ((gtid = __kmp_gtid) == KMP_GTID_DNE) {
440 if (!__kmp_init_parallel ||
441 (gtid = (kmp_intptr_t)(pthread_getspecific( __kmp_gtid_threadprivate_key ))) == 0) {
445 #ifdef KMP_TDATA_GTID
449 #error Unknown or unsupported OS
452 return __kmp_tid_from_gtid( gtid );
457 FTN_GET_NUM_KNOWN_THREADS(
void )
462 if ( ! __kmp_init_serial ) {
463 __kmp_serial_initialize();
467 return TCR_4(__kmp_nth);
472 xexpand(FTN_GET_NUM_PROCS)( void )
477 if ( ! TCR_4(__kmp_init_middle) ) {
478 __kmp_middle_initialize();
480 return __kmp_avail_proc;
485 xexpand(FTN_SET_NESTED)(
int KMP_DEREF flag )
488 __kmps_set_nested( KMP_DEREF flag );
492 thread = __kmp_entry_thread();
493 __kmp_save_internal_controls( thread );
494 set__nested( thread, ( (KMP_DEREF flag) ? TRUE : FALSE ) );
500 xexpand(FTN_GET_NESTED)( void )
503 return __kmps_get_nested();
506 thread = __kmp_entry_thread();
507 return get__nested( thread );
512 xexpand(FTN_SET_DYNAMIC)(
int KMP_DEREF flag )
515 __kmps_set_dynamic( KMP_DEREF flag ? TRUE : FALSE );
519 thread = __kmp_entry_thread();
521 __kmp_save_internal_controls( thread );
522 set__dynamic( thread, KMP_DEREF flag ? TRUE : FALSE );
528 xexpand(FTN_GET_DYNAMIC)( void )
531 return __kmps_get_dynamic();
534 thread = __kmp_entry_thread();
535 return get__dynamic( thread );
540 xexpand(FTN_IN_PARALLEL)( void )
545 kmp_info_t *th = __kmp_entry_thread();
547 if ( th->th.th_teams_microtask ) {
552 return ( th->th.th_team->t.t_active_level ? 1 : 0 );
556 return ( th->th.th_root->r.r_in_parallel ? FTN_TRUE : FTN_FALSE );
561 xexpand(FTN_SET_SCHEDULE)( kmp_sched_t KMP_DEREF kind,
int KMP_DEREF modifier )
564 __kmps_set_schedule( KMP_DEREF kind, KMP_DEREF modifier );
568 __kmp_set_schedule( __kmp_entry_gtid(), KMP_DEREF kind, KMP_DEREF modifier );
573 xexpand(FTN_GET_SCHEDULE)( kmp_sched_t * kind,
int * modifier )
576 __kmps_get_schedule( kind, modifier );
580 __kmp_get_schedule( __kmp_entry_gtid(), kind, modifier );
585 xexpand(FTN_SET_MAX_ACTIVE_LEVELS)(
int KMP_DEREF arg )
592 __kmp_set_max_active_levels( __kmp_entry_gtid(), KMP_DEREF arg );
597 xexpand(FTN_GET_MAX_ACTIVE_LEVELS)( void )
604 return __kmp_get_max_active_levels( __kmp_entry_gtid() );
609 xexpand(FTN_GET_ACTIVE_LEVEL)( void )
616 return __kmp_entry_thread() -> th.th_team -> t.t_active_level;
621 xexpand(FTN_GET_LEVEL)( void )
628 return __kmp_entry_thread() -> th.th_team -> t.t_level;
633 xexpand(FTN_GET_ANCESTOR_THREAD_NUM)(
int KMP_DEREF level )
636 return ( KMP_DEREF level ) ? ( -1 ) : ( 0 );
638 return __kmp_get_ancestor_thread_num( __kmp_entry_gtid(), KMP_DEREF level );
643 xexpand(FTN_GET_TEAM_SIZE)(
int KMP_DEREF level )
646 return ( KMP_DEREF level ) ? ( -1 ) : ( 1 );
648 return __kmp_get_team_size( __kmp_entry_gtid(), KMP_DEREF level );
653 xexpand(FTN_GET_THREAD_LIMIT)( void )
658 if ( ! __kmp_init_serial ) {
659 __kmp_serial_initialize();
662 return __kmp_max_nth;
667 xexpand(FTN_IN_FINAL)( void )
672 if ( ! TCR_4(__kmp_init_parallel) ) {
675 return __kmp_entry_thread() -> th.th_current_task -> td_flags.final;
682 kmp_proc_bind_t FTN_STDCALL
683 xexpand(FTN_GET_PROC_BIND)( void )
686 return __kmps_get_proc_bind();
688 return get__proc_bind( __kmp_entry_thread() );
693 xexpand(FTN_GET_NUM_TEAMS)( void )
698 kmp_info_t *thr = __kmp_entry_thread();
699 if ( thr->th.th_teams_microtask ) {
700 kmp_team_t *team = thr->th.th_team;
701 int tlevel = thr->th.th_teams_level;
702 int ii = team->t.t_level;
703 int dd = team -> t.t_serialized;
704 int level = tlevel + 1;
705 KMP_DEBUG_ASSERT( ii >= tlevel );
708 for( dd = team -> t.t_serialized; ( dd > 0 ) && ( ii > level ); dd--, ii-- )
711 if( team -> t.t_serialized && ( !dd ) ) {
712 team = team->t.t_parent;
716 team = team->t.t_parent;
723 return team->t.t_parent->t.t_nproc;
732 xexpand(FTN_GET_TEAM_NUM)( void )
737 kmp_info_t *thr = __kmp_entry_thread();
738 if ( thr->th.th_teams_microtask ) {
739 kmp_team_t *team = thr->th.th_team;
740 int tlevel = thr->th.th_teams_level;
741 int ii = team->t.t_level;
742 int dd = team -> t.t_serialized;
743 int level = tlevel + 1;
744 KMP_DEBUG_ASSERT( ii >= tlevel );
747 for( dd = team -> t.t_serialized; ( dd > 0 ) && ( ii > level ); dd--, ii-- )
750 if( team -> t.t_serialized && ( !dd ) ) {
751 team = team->t.t_parent;
755 team = team->t.t_parent;
762 return team->t.t_master_tid;
770 #if KMP_MIC || KMP_OS_DARWIN
772 static int __kmp_default_device = 0;
775 FTN_GET_DEFAULT_DEVICE(
void )
777 return __kmp_default_device;
781 FTN_SET_DEFAULT_DEVICE(
int KMP_DEREF arg )
783 __kmp_default_device = KMP_DEREF arg;
787 FTN_GET_NUM_DEVICES(
void )
792 #endif // KMP_MIC || KMP_OS_DARWIN
794 #endif // OMP_40_ENABLED
797 typedef enum { UNINIT = -1, UNLOCKED, LOCKED } kmp_stub_lock_t;
802 xexpand(FTN_INIT_LOCK)(
void **user_lock )
805 *((kmp_stub_lock_t *)user_lock) = UNLOCKED;
807 __kmpc_init_lock( NULL, __kmp_entry_gtid(), user_lock );
813 xexpand(FTN_INIT_NEST_LOCK)(
void **user_lock )
816 *((kmp_stub_lock_t *)user_lock) = UNLOCKED;
818 __kmpc_init_nest_lock( NULL, __kmp_entry_gtid(), user_lock );
823 xexpand(FTN_DESTROY_LOCK)(
void **user_lock )
826 *((kmp_stub_lock_t *)user_lock) = UNINIT;
828 __kmpc_destroy_lock( NULL, __kmp_entry_gtid(), user_lock );
833 xexpand(FTN_DESTROY_NEST_LOCK)(
void **user_lock )
836 *((kmp_stub_lock_t *)user_lock) = UNINIT;
838 __kmpc_destroy_nest_lock( NULL, __kmp_entry_gtid(), user_lock );
843 xexpand(FTN_SET_LOCK)(
void **user_lock )
846 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
849 if ( *((kmp_stub_lock_t *)user_lock) != UNLOCKED ) {
852 *((kmp_stub_lock_t *)user_lock) = LOCKED;
854 __kmpc_set_lock( NULL, __kmp_entry_gtid(), user_lock );
859 xexpand(FTN_SET_NEST_LOCK)(
void **user_lock )
862 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
865 (*((
int *)user_lock))++;
867 __kmpc_set_nest_lock( NULL, __kmp_entry_gtid(), user_lock );
872 xexpand(FTN_UNSET_LOCK)(
void **user_lock )
875 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
878 if ( *((kmp_stub_lock_t *)user_lock) == UNLOCKED ) {
881 *((kmp_stub_lock_t *)user_lock) = UNLOCKED;
883 __kmpc_unset_lock( NULL, __kmp_entry_gtid(), user_lock );
888 xexpand(FTN_UNSET_NEST_LOCK)(
void **user_lock )
891 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
894 if ( *((kmp_stub_lock_t *)user_lock) == UNLOCKED ) {
897 (*((
int *)user_lock))--;
899 __kmpc_unset_nest_lock( NULL, __kmp_entry_gtid(), user_lock );
904 xexpand(FTN_TEST_LOCK)(
void **user_lock )
907 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
910 if ( *((kmp_stub_lock_t *)user_lock) == LOCKED ) {
913 *((kmp_stub_lock_t *)user_lock) = LOCKED;
916 return __kmpc_test_lock( NULL, __kmp_entry_gtid(), user_lock );
921 xexpand(FTN_TEST_NEST_LOCK)(
void **user_lock )
924 if ( *((kmp_stub_lock_t *)user_lock) == UNINIT ) {
927 return ++(*((
int *)user_lock));
929 return __kmpc_test_nest_lock( NULL, __kmp_entry_gtid(), user_lock );
934 xexpand(FTN_GET_WTIME)( void )
937 return __kmps_get_wtime();
943 if ( ! __kmp_init_serial ) {
944 __kmp_serial_initialize();
947 __kmp_elapsed( & data );
953 xexpand(FTN_GET_WTICK)( void )
956 return __kmps_get_wtick();
959 if ( ! __kmp_init_serial ) {
960 __kmp_serial_initialize();
962 __kmp_elapsed_tick( & data );
970 FTN_MALLOC(
size_t KMP_DEREF size )
973 return kmpc_malloc( KMP_DEREF size );
977 FTN_CALLOC(
size_t KMP_DEREF nelem,
size_t KMP_DEREF elsize )
980 return kmpc_calloc( KMP_DEREF nelem, KMP_DEREF elsize );
984 FTN_REALLOC(
void * KMP_DEREF ptr,
size_t KMP_DEREF size )
987 return kmpc_realloc( KMP_DEREF ptr, KMP_DEREF size );
991 FTN_FREE(
void * KMP_DEREF ptr )
994 kmpc_free( KMP_DEREF ptr );
998 FTN_SET_WARNINGS_ON(
void )
1001 __kmp_generate_warnings = kmp_warnings_explicit;
1006 FTN_SET_WARNINGS_OFF(
void )
1009 __kmp_generate_warnings = FALSE;
1014 FTN_SET_DEFAULTS(
char const * str
1015 #ifndef PASS_ARGS_BY_VALUE
1021 #ifdef PASS_ARGS_BY_VALUE
1022 int len = (int)strlen( str );
1024 __kmp_aux_set_defaults( str, len );
1034 xexpand(FTN_GET_CANCELLATION)(void) {
1039 if ( ! __kmp_init_serial ) {
1040 __kmp_serial_initialize();
1042 return __kmp_omp_cancellation;
1047 FTN_GET_CANCELLATION_STATUS(
int cancel_kind) {
1051 return __kmp_get_cancellation_status(cancel_kind);
1055 #endif // OMP_40_ENABLED
1058 #ifdef KMP_USE_VERSION_SYMBOLS
1077 xaliasify(FTN_SET_NUM_THREADS, 10);
1078 xaliasify(FTN_GET_NUM_THREADS, 10);
1079 xaliasify(FTN_GET_MAX_THREADS, 10);
1080 xaliasify(FTN_GET_THREAD_NUM, 10);
1081 xaliasify(FTN_GET_NUM_PROCS, 10);
1082 xaliasify(FTN_IN_PARALLEL, 10);
1083 xaliasify(FTN_SET_DYNAMIC, 10);
1084 xaliasify(FTN_GET_DYNAMIC, 10);
1085 xaliasify(FTN_SET_NESTED, 10);
1086 xaliasify(FTN_GET_NESTED, 10);
1087 xaliasify(FTN_INIT_LOCK, 10);
1088 xaliasify(FTN_INIT_NEST_LOCK, 10);
1089 xaliasify(FTN_DESTROY_LOCK, 10);
1090 xaliasify(FTN_DESTROY_NEST_LOCK, 10);
1091 xaliasify(FTN_SET_LOCK, 10);
1092 xaliasify(FTN_SET_NEST_LOCK, 10);
1093 xaliasify(FTN_UNSET_LOCK, 10);
1094 xaliasify(FTN_UNSET_NEST_LOCK, 10);
1095 xaliasify(FTN_TEST_LOCK, 10);
1096 xaliasify(FTN_TEST_NEST_LOCK, 10);
1099 xaliasify(FTN_GET_WTICK, 20);
1100 xaliasify(FTN_GET_WTIME, 20);
1103 xaliasify(FTN_SET_SCHEDULE, 30);
1104 xaliasify(FTN_GET_SCHEDULE, 30);
1105 xaliasify(FTN_GET_THREAD_LIMIT, 30);
1106 xaliasify(FTN_SET_MAX_ACTIVE_LEVELS, 30);
1107 xaliasify(FTN_GET_MAX_ACTIVE_LEVELS, 30);
1108 xaliasify(FTN_GET_LEVEL, 30);
1109 xaliasify(FTN_GET_ANCESTOR_THREAD_NUM, 30);
1110 xaliasify(FTN_GET_TEAM_SIZE, 30);
1111 xaliasify(FTN_GET_ACTIVE_LEVEL, 30);
1112 xaliasify(FTN_INIT_LOCK, 30);
1113 xaliasify(FTN_INIT_NEST_LOCK, 30);
1114 xaliasify(FTN_DESTROY_LOCK, 30);
1115 xaliasify(FTN_DESTROY_NEST_LOCK, 30);
1116 xaliasify(FTN_SET_LOCK, 30);
1117 xaliasify(FTN_SET_NEST_LOCK, 30);
1118 xaliasify(FTN_UNSET_LOCK, 30);
1119 xaliasify(FTN_UNSET_NEST_LOCK, 30);
1120 xaliasify(FTN_TEST_LOCK, 30);
1121 xaliasify(FTN_TEST_NEST_LOCK, 30);
1124 xaliasify(FTN_IN_FINAL, 31);
1128 xaliasify(FTN_GET_PROC_BIND, 40);
1129 xaliasify(FTN_GET_NUM_TEAMS, 40);
1130 xaliasify(FTN_GET_TEAM_NUM, 40);
1131 xaliasify(FTN_GET_CANCELLATION, 40);
1143 xversionify(FTN_SET_NUM_THREADS, 10,
"OMP_1.0");
1144 xversionify(FTN_GET_NUM_THREADS, 10,
"OMP_1.0");
1145 xversionify(FTN_GET_MAX_THREADS, 10,
"OMP_1.0");
1146 xversionify(FTN_GET_THREAD_NUM, 10,
"OMP_1.0");
1147 xversionify(FTN_GET_NUM_PROCS, 10,
"OMP_1.0");
1148 xversionify(FTN_IN_PARALLEL, 10,
"OMP_1.0");
1149 xversionify(FTN_SET_DYNAMIC, 10,
"OMP_1.0");
1150 xversionify(FTN_GET_DYNAMIC, 10,
"OMP_1.0");
1151 xversionify(FTN_SET_NESTED, 10,
"OMP_1.0");
1152 xversionify(FTN_GET_NESTED, 10,
"OMP_1.0");
1153 xversionify(FTN_INIT_LOCK, 10,
"OMP_1.0");
1154 xversionify(FTN_INIT_NEST_LOCK, 10,
"OMP_1.0");
1155 xversionify(FTN_DESTROY_LOCK, 10,
"OMP_1.0");
1156 xversionify(FTN_DESTROY_NEST_LOCK, 10,
"OMP_1.0");
1157 xversionify(FTN_SET_LOCK, 10,
"OMP_1.0");
1158 xversionify(FTN_SET_NEST_LOCK, 10,
"OMP_1.0");
1159 xversionify(FTN_UNSET_LOCK, 10,
"OMP_1.0");
1160 xversionify(FTN_UNSET_NEST_LOCK, 10,
"OMP_1.0");
1161 xversionify(FTN_TEST_LOCK, 10,
"OMP_1.0");
1162 xversionify(FTN_TEST_NEST_LOCK, 10,
"OMP_1.0");
1165 xversionify(FTN_GET_WTICK, 20,
"OMP_2.0");
1166 xversionify(FTN_GET_WTIME, 20,
"OMP_2.0");
1169 xversionify(FTN_SET_SCHEDULE, 30,
"OMP_3.0");
1170 xversionify(FTN_GET_SCHEDULE, 30,
"OMP_3.0");
1171 xversionify(FTN_GET_THREAD_LIMIT, 30,
"OMP_3.0");
1172 xversionify(FTN_SET_MAX_ACTIVE_LEVELS, 30,
"OMP_3.0");
1173 xversionify(FTN_GET_MAX_ACTIVE_LEVELS, 30,
"OMP_3.0");
1174 xversionify(FTN_GET_ANCESTOR_THREAD_NUM, 30,
"OMP_3.0");
1175 xversionify(FTN_GET_LEVEL, 30,
"OMP_3.0");
1176 xversionify(FTN_GET_TEAM_SIZE, 30,
"OMP_3.0");
1177 xversionify(FTN_GET_ACTIVE_LEVEL, 30,
"OMP_3.0");
1180 xversionify(FTN_INIT_LOCK, 30,
"OMP_3.0");
1181 xversionify(FTN_INIT_NEST_LOCK, 30,
"OMP_3.0");
1182 xversionify(FTN_DESTROY_LOCK, 30,
"OMP_3.0");
1183 xversionify(FTN_DESTROY_NEST_LOCK, 30,
"OMP_3.0");
1184 xversionify(FTN_SET_LOCK, 30,
"OMP_3.0");
1185 xversionify(FTN_SET_NEST_LOCK, 30,
"OMP_3.0");
1186 xversionify(FTN_UNSET_LOCK, 30,
"OMP_3.0");
1187 xversionify(FTN_UNSET_NEST_LOCK, 30,
"OMP_3.0");
1188 xversionify(FTN_TEST_LOCK, 30,
"OMP_3.0");
1189 xversionify(FTN_TEST_NEST_LOCK, 30,
"OMP_3.0");
1192 xversionify(FTN_IN_FINAL, 31,
"OMP_3.1");
1196 xversionify(FTN_GET_PROC_BIND, 40,
"OMP_4.0");
1197 xversionify(FTN_GET_NUM_TEAMS, 40,
"OMP_4.0");
1198 xversionify(FTN_GET_TEAM_NUM, 40,
"OMP_4.0");
1199 xversionify(FTN_GET_CANCELLATION, 40,
"OMP_4.0");
1210 #endif // KMP_USE_VERSION_SYMBOLS
1214 #endif // __cplusplus
KMP_EXPORT kmp_int32 __kmpc_bound_num_threads(ident_t *)