xref: /netbsd-src/external/gpl3/gcc.old/dist/libgomp/fortran.c (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
1*8feb0f0bSmrg /* Copyright (C) 2005-2020 Free Software Foundation, Inc.
21debfc3dSmrg    Contributed by Jakub Jelinek <jakub@redhat.com>.
31debfc3dSmrg 
41debfc3dSmrg    This file is part of the GNU Offloading and Multi Processing Library
51debfc3dSmrg    (libgomp).
61debfc3dSmrg 
71debfc3dSmrg    Libgomp is free software; you can redistribute it and/or modify it
81debfc3dSmrg    under the terms of the GNU General Public License as published by
91debfc3dSmrg    the Free Software Foundation; either version 3, or (at your option)
101debfc3dSmrg    any later version.
111debfc3dSmrg 
121debfc3dSmrg    Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
131debfc3dSmrg    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
141debfc3dSmrg    FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
151debfc3dSmrg    more details.
161debfc3dSmrg 
171debfc3dSmrg    Under Section 7 of GPL version 3, you are granted additional
181debfc3dSmrg    permissions described in the GCC Runtime Library Exception, version
191debfc3dSmrg    3.1, as published by the Free Software Foundation.
201debfc3dSmrg 
211debfc3dSmrg    You should have received a copy of the GNU General Public License and
221debfc3dSmrg    a copy of the GCC Runtime Library Exception along with this program;
231debfc3dSmrg    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
241debfc3dSmrg    <http://www.gnu.org/licenses/>.  */
251debfc3dSmrg 
261debfc3dSmrg /* This file contains Fortran wrapper routines.  */
271debfc3dSmrg 
281debfc3dSmrg #include "libgomp.h"
291debfc3dSmrg #include "libgomp_f.h"
301debfc3dSmrg #include <stdlib.h>
31c0a68be4Smrg #include <stdio.h>
32c0a68be4Smrg #include <string.h>
331debfc3dSmrg #include <limits.h>
341debfc3dSmrg 
351debfc3dSmrg #ifdef HAVE_ATTRIBUTE_ALIAS
361debfc3dSmrg /* Use internal aliases if possible.  */
371debfc3dSmrg # ifndef LIBGOMP_GNU_SYMBOL_VERSIONING
381debfc3dSmrg ialias_redirect (omp_init_lock)
ialias_redirect(omp_init_nest_lock)391debfc3dSmrg ialias_redirect (omp_init_nest_lock)
401debfc3dSmrg ialias_redirect (omp_destroy_lock)
411debfc3dSmrg ialias_redirect (omp_destroy_nest_lock)
421debfc3dSmrg ialias_redirect (omp_set_lock)
431debfc3dSmrg ialias_redirect (omp_set_nest_lock)
441debfc3dSmrg ialias_redirect (omp_unset_lock)
451debfc3dSmrg ialias_redirect (omp_unset_nest_lock)
461debfc3dSmrg ialias_redirect (omp_test_lock)
471debfc3dSmrg ialias_redirect (omp_test_nest_lock)
481debfc3dSmrg # endif
491debfc3dSmrg ialias_redirect (omp_set_dynamic)
501debfc3dSmrg ialias_redirect (omp_set_nested)
511debfc3dSmrg ialias_redirect (omp_set_num_threads)
521debfc3dSmrg ialias_redirect (omp_get_dynamic)
531debfc3dSmrg ialias_redirect (omp_get_nested)
541debfc3dSmrg ialias_redirect (omp_in_parallel)
551debfc3dSmrg ialias_redirect (omp_get_max_threads)
561debfc3dSmrg ialias_redirect (omp_get_num_procs)
571debfc3dSmrg ialias_redirect (omp_get_num_threads)
581debfc3dSmrg ialias_redirect (omp_get_thread_num)
591debfc3dSmrg ialias_redirect (omp_get_wtick)
601debfc3dSmrg ialias_redirect (omp_get_wtime)
611debfc3dSmrg ialias_redirect (omp_set_schedule)
621debfc3dSmrg ialias_redirect (omp_get_schedule)
631debfc3dSmrg ialias_redirect (omp_get_thread_limit)
641debfc3dSmrg ialias_redirect (omp_set_max_active_levels)
651debfc3dSmrg ialias_redirect (omp_get_max_active_levels)
661debfc3dSmrg ialias_redirect (omp_get_level)
671debfc3dSmrg ialias_redirect (omp_get_ancestor_thread_num)
681debfc3dSmrg ialias_redirect (omp_get_team_size)
691debfc3dSmrg ialias_redirect (omp_get_active_level)
701debfc3dSmrg ialias_redirect (omp_in_final)
711debfc3dSmrg ialias_redirect (omp_get_cancellation)
721debfc3dSmrg ialias_redirect (omp_get_proc_bind)
731debfc3dSmrg ialias_redirect (omp_get_num_places)
741debfc3dSmrg ialias_redirect (omp_get_place_num_procs)
751debfc3dSmrg ialias_redirect (omp_get_place_proc_ids)
761debfc3dSmrg ialias_redirect (omp_get_place_num)
771debfc3dSmrg ialias_redirect (omp_get_partition_num_places)
781debfc3dSmrg ialias_redirect (omp_get_partition_place_nums)
791debfc3dSmrg ialias_redirect (omp_set_default_device)
801debfc3dSmrg ialias_redirect (omp_get_default_device)
811debfc3dSmrg ialias_redirect (omp_get_num_devices)
821debfc3dSmrg ialias_redirect (omp_get_num_teams)
831debfc3dSmrg ialias_redirect (omp_get_team_num)
841debfc3dSmrg ialias_redirect (omp_is_initial_device)
851debfc3dSmrg ialias_redirect (omp_get_initial_device)
861debfc3dSmrg ialias_redirect (omp_get_max_task_priority)
87c0a68be4Smrg ialias_redirect (omp_pause_resource)
88c0a68be4Smrg ialias_redirect (omp_pause_resource_all)
891debfc3dSmrg #endif
901debfc3dSmrg 
911debfc3dSmrg #ifndef LIBGOMP_GNU_SYMBOL_VERSIONING
921debfc3dSmrg # define gomp_init_lock__30 omp_init_lock_
931debfc3dSmrg # define gomp_destroy_lock__30 omp_destroy_lock_
941debfc3dSmrg # define gomp_set_lock__30 omp_set_lock_
951debfc3dSmrg # define gomp_unset_lock__30 omp_unset_lock_
961debfc3dSmrg # define gomp_test_lock__30 omp_test_lock_
971debfc3dSmrg # define gomp_init_nest_lock__30 omp_init_nest_lock_
981debfc3dSmrg # define gomp_destroy_nest_lock__30 omp_destroy_nest_lock_
991debfc3dSmrg # define gomp_set_nest_lock__30 omp_set_nest_lock_
1001debfc3dSmrg # define gomp_unset_nest_lock__30 omp_unset_nest_lock_
1011debfc3dSmrg # define gomp_test_nest_lock__30 omp_test_nest_lock_
1021debfc3dSmrg #endif
1031debfc3dSmrg 
1041debfc3dSmrg void
1051debfc3dSmrg gomp_init_lock__30 (omp_lock_arg_t lock)
1061debfc3dSmrg {
1071debfc3dSmrg #ifndef OMP_LOCK_DIRECT
1081debfc3dSmrg   omp_lock_arg (lock) = malloc (sizeof (omp_lock_t));
1091debfc3dSmrg #endif
1101debfc3dSmrg   gomp_init_lock_30 (omp_lock_arg (lock));
1111debfc3dSmrg }
1121debfc3dSmrg 
1131debfc3dSmrg void
gomp_init_nest_lock__30(omp_nest_lock_arg_t lock)1141debfc3dSmrg gomp_init_nest_lock__30 (omp_nest_lock_arg_t lock)
1151debfc3dSmrg {
1161debfc3dSmrg #ifndef OMP_NEST_LOCK_DIRECT
1171debfc3dSmrg   omp_nest_lock_arg (lock) = malloc (sizeof (omp_nest_lock_t));
1181debfc3dSmrg #endif
1191debfc3dSmrg   gomp_init_nest_lock_30 (omp_nest_lock_arg (lock));
1201debfc3dSmrg }
1211debfc3dSmrg 
1221debfc3dSmrg void
gomp_destroy_lock__30(omp_lock_arg_t lock)1231debfc3dSmrg gomp_destroy_lock__30 (omp_lock_arg_t lock)
1241debfc3dSmrg {
1251debfc3dSmrg   gomp_destroy_lock_30 (omp_lock_arg (lock));
1261debfc3dSmrg #ifndef OMP_LOCK_DIRECT
1271debfc3dSmrg   free (omp_lock_arg (lock));
1281debfc3dSmrg   omp_lock_arg (lock) = NULL;
1291debfc3dSmrg #endif
1301debfc3dSmrg }
1311debfc3dSmrg 
1321debfc3dSmrg void
gomp_destroy_nest_lock__30(omp_nest_lock_arg_t lock)1331debfc3dSmrg gomp_destroy_nest_lock__30 (omp_nest_lock_arg_t lock)
1341debfc3dSmrg {
1351debfc3dSmrg   gomp_destroy_nest_lock_30 (omp_nest_lock_arg (lock));
1361debfc3dSmrg #ifndef OMP_NEST_LOCK_DIRECT
1371debfc3dSmrg   free (omp_nest_lock_arg (lock));
1381debfc3dSmrg   omp_nest_lock_arg (lock) = NULL;
1391debfc3dSmrg #endif
1401debfc3dSmrg }
1411debfc3dSmrg 
1421debfc3dSmrg void
gomp_set_lock__30(omp_lock_arg_t lock)1431debfc3dSmrg gomp_set_lock__30 (omp_lock_arg_t lock)
1441debfc3dSmrg {
1451debfc3dSmrg   gomp_set_lock_30 (omp_lock_arg (lock));
1461debfc3dSmrg }
1471debfc3dSmrg 
1481debfc3dSmrg void
gomp_set_nest_lock__30(omp_nest_lock_arg_t lock)1491debfc3dSmrg gomp_set_nest_lock__30 (omp_nest_lock_arg_t lock)
1501debfc3dSmrg {
1511debfc3dSmrg   gomp_set_nest_lock_30 (omp_nest_lock_arg (lock));
1521debfc3dSmrg }
1531debfc3dSmrg 
1541debfc3dSmrg void
gomp_unset_lock__30(omp_lock_arg_t lock)1551debfc3dSmrg gomp_unset_lock__30 (omp_lock_arg_t lock)
1561debfc3dSmrg {
1571debfc3dSmrg   gomp_unset_lock_30 (omp_lock_arg (lock));
1581debfc3dSmrg }
1591debfc3dSmrg 
1601debfc3dSmrg void
gomp_unset_nest_lock__30(omp_nest_lock_arg_t lock)1611debfc3dSmrg gomp_unset_nest_lock__30 (omp_nest_lock_arg_t lock)
1621debfc3dSmrg {
1631debfc3dSmrg   gomp_unset_nest_lock_30 (omp_nest_lock_arg (lock));
1641debfc3dSmrg }
1651debfc3dSmrg 
1661debfc3dSmrg int32_t
gomp_test_lock__30(omp_lock_arg_t lock)1671debfc3dSmrg gomp_test_lock__30 (omp_lock_arg_t lock)
1681debfc3dSmrg {
1691debfc3dSmrg   return gomp_test_lock_30 (omp_lock_arg (lock));
1701debfc3dSmrg }
1711debfc3dSmrg 
1721debfc3dSmrg int32_t
gomp_test_nest_lock__30(omp_nest_lock_arg_t lock)1731debfc3dSmrg gomp_test_nest_lock__30 (omp_nest_lock_arg_t lock)
1741debfc3dSmrg {
1751debfc3dSmrg   return gomp_test_nest_lock_30 (omp_nest_lock_arg (lock));
1761debfc3dSmrg }
1771debfc3dSmrg 
1781debfc3dSmrg #ifdef LIBGOMP_GNU_SYMBOL_VERSIONING
1791debfc3dSmrg void
gomp_init_lock__25(omp_lock_25_arg_t lock)1801debfc3dSmrg gomp_init_lock__25 (omp_lock_25_arg_t lock)
1811debfc3dSmrg {
1821debfc3dSmrg #ifndef OMP_LOCK_25_DIRECT
1831debfc3dSmrg   omp_lock_25_arg (lock) = malloc (sizeof (omp_lock_25_t));
1841debfc3dSmrg #endif
1851debfc3dSmrg   gomp_init_lock_25 (omp_lock_25_arg (lock));
1861debfc3dSmrg }
1871debfc3dSmrg 
1881debfc3dSmrg void
gomp_init_nest_lock__25(omp_nest_lock_25_arg_t lock)1891debfc3dSmrg gomp_init_nest_lock__25 (omp_nest_lock_25_arg_t lock)
1901debfc3dSmrg {
1911debfc3dSmrg #ifndef OMP_NEST_LOCK_25_DIRECT
1921debfc3dSmrg   omp_nest_lock_25_arg (lock) = malloc (sizeof (omp_nest_lock_25_t));
1931debfc3dSmrg #endif
1941debfc3dSmrg   gomp_init_nest_lock_25 (omp_nest_lock_25_arg (lock));
1951debfc3dSmrg }
1961debfc3dSmrg 
1971debfc3dSmrg void
gomp_destroy_lock__25(omp_lock_25_arg_t lock)1981debfc3dSmrg gomp_destroy_lock__25 (omp_lock_25_arg_t lock)
1991debfc3dSmrg {
2001debfc3dSmrg   gomp_destroy_lock_25 (omp_lock_25_arg (lock));
2011debfc3dSmrg #ifndef OMP_LOCK_25_DIRECT
2021debfc3dSmrg   free (omp_lock_25_arg (lock));
2031debfc3dSmrg   omp_lock_25_arg (lock) = NULL;
2041debfc3dSmrg #endif
2051debfc3dSmrg }
2061debfc3dSmrg 
2071debfc3dSmrg void
gomp_destroy_nest_lock__25(omp_nest_lock_25_arg_t lock)2081debfc3dSmrg gomp_destroy_nest_lock__25 (omp_nest_lock_25_arg_t lock)
2091debfc3dSmrg {
2101debfc3dSmrg   gomp_destroy_nest_lock_25 (omp_nest_lock_25_arg (lock));
2111debfc3dSmrg #ifndef OMP_NEST_LOCK_25_DIRECT
2121debfc3dSmrg   free (omp_nest_lock_25_arg (lock));
2131debfc3dSmrg   omp_nest_lock_25_arg (lock) = NULL;
2141debfc3dSmrg #endif
2151debfc3dSmrg }
2161debfc3dSmrg 
2171debfc3dSmrg void
gomp_set_lock__25(omp_lock_25_arg_t lock)2181debfc3dSmrg gomp_set_lock__25 (omp_lock_25_arg_t lock)
2191debfc3dSmrg {
2201debfc3dSmrg   gomp_set_lock_25 (omp_lock_25_arg (lock));
2211debfc3dSmrg }
2221debfc3dSmrg 
2231debfc3dSmrg void
gomp_set_nest_lock__25(omp_nest_lock_25_arg_t lock)2241debfc3dSmrg gomp_set_nest_lock__25 (omp_nest_lock_25_arg_t lock)
2251debfc3dSmrg {
2261debfc3dSmrg   gomp_set_nest_lock_25 (omp_nest_lock_25_arg (lock));
2271debfc3dSmrg }
2281debfc3dSmrg 
2291debfc3dSmrg void
gomp_unset_lock__25(omp_lock_25_arg_t lock)2301debfc3dSmrg gomp_unset_lock__25 (omp_lock_25_arg_t lock)
2311debfc3dSmrg {
2321debfc3dSmrg   gomp_unset_lock_25 (omp_lock_25_arg (lock));
2331debfc3dSmrg }
2341debfc3dSmrg 
2351debfc3dSmrg void
gomp_unset_nest_lock__25(omp_nest_lock_25_arg_t lock)2361debfc3dSmrg gomp_unset_nest_lock__25 (omp_nest_lock_25_arg_t lock)
2371debfc3dSmrg {
2381debfc3dSmrg   gomp_unset_nest_lock_25 (omp_nest_lock_25_arg (lock));
2391debfc3dSmrg }
2401debfc3dSmrg 
2411debfc3dSmrg int32_t
gomp_test_lock__25(omp_lock_25_arg_t lock)2421debfc3dSmrg gomp_test_lock__25 (omp_lock_25_arg_t lock)
2431debfc3dSmrg {
2441debfc3dSmrg   return gomp_test_lock_25 (omp_lock_25_arg (lock));
2451debfc3dSmrg }
2461debfc3dSmrg 
2471debfc3dSmrg int32_t
gomp_test_nest_lock__25(omp_nest_lock_25_arg_t lock)2481debfc3dSmrg gomp_test_nest_lock__25 (omp_nest_lock_25_arg_t lock)
2491debfc3dSmrg {
2501debfc3dSmrg   return gomp_test_nest_lock_25 (omp_nest_lock_25_arg (lock));
2511debfc3dSmrg }
2521debfc3dSmrg 
2531debfc3dSmrg omp_lock_symver (omp_init_lock_)
omp_lock_symver(omp_destroy_lock_)2541debfc3dSmrg omp_lock_symver (omp_destroy_lock_)
2551debfc3dSmrg omp_lock_symver (omp_set_lock_)
2561debfc3dSmrg omp_lock_symver (omp_unset_lock_)
2571debfc3dSmrg omp_lock_symver (omp_test_lock_)
2581debfc3dSmrg omp_lock_symver (omp_init_nest_lock_)
2591debfc3dSmrg omp_lock_symver (omp_destroy_nest_lock_)
2601debfc3dSmrg omp_lock_symver (omp_set_nest_lock_)
2611debfc3dSmrg omp_lock_symver (omp_unset_nest_lock_)
2621debfc3dSmrg omp_lock_symver (omp_test_nest_lock_)
2631debfc3dSmrg #endif
2641debfc3dSmrg 
2651debfc3dSmrg #define TO_INT(x) ((x) > INT_MIN ? (x) < INT_MAX ? (x) : INT_MAX : INT_MIN)
2661debfc3dSmrg 
2671debfc3dSmrg void
2681debfc3dSmrg omp_set_dynamic_ (const int32_t *set)
2691debfc3dSmrg {
2701debfc3dSmrg   omp_set_dynamic (*set);
2711debfc3dSmrg }
2721debfc3dSmrg 
2731debfc3dSmrg void
omp_set_dynamic_8_(const int64_t * set)2741debfc3dSmrg omp_set_dynamic_8_ (const int64_t *set)
2751debfc3dSmrg {
2761debfc3dSmrg   omp_set_dynamic (!!*set);
2771debfc3dSmrg }
2781debfc3dSmrg 
2791debfc3dSmrg void
omp_set_nested_(const int32_t * set)2801debfc3dSmrg omp_set_nested_ (const int32_t *set)
2811debfc3dSmrg {
2821debfc3dSmrg   omp_set_nested (*set);
2831debfc3dSmrg }
2841debfc3dSmrg 
2851debfc3dSmrg void
omp_set_nested_8_(const int64_t * set)2861debfc3dSmrg omp_set_nested_8_ (const int64_t *set)
2871debfc3dSmrg {
2881debfc3dSmrg   omp_set_nested (!!*set);
2891debfc3dSmrg }
2901debfc3dSmrg 
2911debfc3dSmrg void
omp_set_num_threads_(const int32_t * set)2921debfc3dSmrg omp_set_num_threads_ (const int32_t *set)
2931debfc3dSmrg {
2941debfc3dSmrg   omp_set_num_threads (*set);
2951debfc3dSmrg }
2961debfc3dSmrg 
2971debfc3dSmrg void
omp_set_num_threads_8_(const int64_t * set)2981debfc3dSmrg omp_set_num_threads_8_ (const int64_t *set)
2991debfc3dSmrg {
3001debfc3dSmrg   omp_set_num_threads (TO_INT (*set));
3011debfc3dSmrg }
3021debfc3dSmrg 
3031debfc3dSmrg int32_t
omp_get_dynamic_(void)3041debfc3dSmrg omp_get_dynamic_ (void)
3051debfc3dSmrg {
3061debfc3dSmrg   return omp_get_dynamic ();
3071debfc3dSmrg }
3081debfc3dSmrg 
3091debfc3dSmrg int32_t
omp_get_nested_(void)3101debfc3dSmrg omp_get_nested_ (void)
3111debfc3dSmrg {
3121debfc3dSmrg   return omp_get_nested ();
3131debfc3dSmrg }
3141debfc3dSmrg 
3151debfc3dSmrg int32_t
omp_in_parallel_(void)3161debfc3dSmrg omp_in_parallel_ (void)
3171debfc3dSmrg {
3181debfc3dSmrg   return omp_in_parallel ();
3191debfc3dSmrg }
3201debfc3dSmrg 
3211debfc3dSmrg int32_t
omp_get_max_threads_(void)3221debfc3dSmrg omp_get_max_threads_ (void)
3231debfc3dSmrg {
3241debfc3dSmrg   return omp_get_max_threads ();
3251debfc3dSmrg }
3261debfc3dSmrg 
3271debfc3dSmrg int32_t
omp_get_num_procs_(void)3281debfc3dSmrg omp_get_num_procs_ (void)
3291debfc3dSmrg {
3301debfc3dSmrg   return omp_get_num_procs ();
3311debfc3dSmrg }
3321debfc3dSmrg 
3331debfc3dSmrg int32_t
omp_get_num_threads_(void)3341debfc3dSmrg omp_get_num_threads_ (void)
3351debfc3dSmrg {
3361debfc3dSmrg   return omp_get_num_threads ();
3371debfc3dSmrg }
3381debfc3dSmrg 
3391debfc3dSmrg int32_t
omp_get_thread_num_(void)3401debfc3dSmrg omp_get_thread_num_ (void)
3411debfc3dSmrg {
3421debfc3dSmrg   return omp_get_thread_num ();
3431debfc3dSmrg }
3441debfc3dSmrg 
3451debfc3dSmrg double
omp_get_wtick_(void)3461debfc3dSmrg omp_get_wtick_ (void)
3471debfc3dSmrg {
3481debfc3dSmrg   return omp_get_wtick ();
3491debfc3dSmrg }
3501debfc3dSmrg 
3511debfc3dSmrg double
omp_get_wtime_(void)3521debfc3dSmrg omp_get_wtime_ (void)
3531debfc3dSmrg {
3541debfc3dSmrg   return omp_get_wtime ();
3551debfc3dSmrg }
3561debfc3dSmrg 
3571debfc3dSmrg void
omp_set_schedule_(const int32_t * kind,const int32_t * chunk_size)3581debfc3dSmrg omp_set_schedule_ (const int32_t *kind, const int32_t *chunk_size)
3591debfc3dSmrg {
3601debfc3dSmrg   omp_set_schedule (*kind, *chunk_size);
3611debfc3dSmrg }
3621debfc3dSmrg 
3631debfc3dSmrg void
omp_set_schedule_8_(const int32_t * kind,const int64_t * chunk_size)3641debfc3dSmrg omp_set_schedule_8_ (const int32_t *kind, const int64_t *chunk_size)
3651debfc3dSmrg {
3661debfc3dSmrg   omp_set_schedule (*kind, TO_INT (*chunk_size));
3671debfc3dSmrg }
3681debfc3dSmrg 
3691debfc3dSmrg void
omp_get_schedule_(int32_t * kind,int32_t * chunk_size)3701debfc3dSmrg omp_get_schedule_ (int32_t *kind, int32_t *chunk_size)
3711debfc3dSmrg {
3721debfc3dSmrg   omp_sched_t k;
3731debfc3dSmrg   int cs;
3741debfc3dSmrg   omp_get_schedule (&k, &cs);
375c0a68be4Smrg   /* For now mask off GFS_MONOTONIC, because OpenMP 4.5 code will not
376c0a68be4Smrg      expect to see it.  */
377c0a68be4Smrg   *kind = k & ~GFS_MONOTONIC;
3781debfc3dSmrg   *chunk_size = cs;
3791debfc3dSmrg }
3801debfc3dSmrg 
3811debfc3dSmrg void
omp_get_schedule_8_(int32_t * kind,int64_t * chunk_size)3821debfc3dSmrg omp_get_schedule_8_ (int32_t *kind, int64_t *chunk_size)
3831debfc3dSmrg {
3841debfc3dSmrg   omp_sched_t k;
3851debfc3dSmrg   int cs;
3861debfc3dSmrg   omp_get_schedule (&k, &cs);
387c0a68be4Smrg   /* See above.  */
388c0a68be4Smrg   *kind = k & ~GFS_MONOTONIC;
3891debfc3dSmrg   *chunk_size = cs;
3901debfc3dSmrg }
3911debfc3dSmrg 
3921debfc3dSmrg int32_t
omp_get_thread_limit_(void)3931debfc3dSmrg omp_get_thread_limit_ (void)
3941debfc3dSmrg {
3951debfc3dSmrg   return omp_get_thread_limit ();
3961debfc3dSmrg }
3971debfc3dSmrg 
3981debfc3dSmrg void
omp_set_max_active_levels_(const int32_t * levels)3991debfc3dSmrg omp_set_max_active_levels_ (const int32_t *levels)
4001debfc3dSmrg {
4011debfc3dSmrg   omp_set_max_active_levels (*levels);
4021debfc3dSmrg }
4031debfc3dSmrg 
4041debfc3dSmrg void
omp_set_max_active_levels_8_(const int64_t * levels)4051debfc3dSmrg omp_set_max_active_levels_8_ (const int64_t *levels)
4061debfc3dSmrg {
4071debfc3dSmrg   omp_set_max_active_levels (TO_INT (*levels));
4081debfc3dSmrg }
4091debfc3dSmrg 
4101debfc3dSmrg int32_t
omp_get_max_active_levels_(void)4111debfc3dSmrg omp_get_max_active_levels_ (void)
4121debfc3dSmrg {
4131debfc3dSmrg   return omp_get_max_active_levels ();
4141debfc3dSmrg }
4151debfc3dSmrg 
4161debfc3dSmrg int32_t
omp_get_level_(void)4171debfc3dSmrg omp_get_level_ (void)
4181debfc3dSmrg {
4191debfc3dSmrg   return omp_get_level ();
4201debfc3dSmrg }
4211debfc3dSmrg 
4221debfc3dSmrg int32_t
omp_get_ancestor_thread_num_(const int32_t * level)4231debfc3dSmrg omp_get_ancestor_thread_num_ (const int32_t *level)
4241debfc3dSmrg {
4251debfc3dSmrg   return omp_get_ancestor_thread_num (*level);
4261debfc3dSmrg }
4271debfc3dSmrg 
4281debfc3dSmrg int32_t
omp_get_ancestor_thread_num_8_(const int64_t * level)4291debfc3dSmrg omp_get_ancestor_thread_num_8_ (const int64_t *level)
4301debfc3dSmrg {
4311debfc3dSmrg   return omp_get_ancestor_thread_num (TO_INT (*level));
4321debfc3dSmrg }
4331debfc3dSmrg 
4341debfc3dSmrg int32_t
omp_get_team_size_(const int32_t * level)4351debfc3dSmrg omp_get_team_size_ (const int32_t *level)
4361debfc3dSmrg {
4371debfc3dSmrg   return omp_get_team_size (*level);
4381debfc3dSmrg }
4391debfc3dSmrg 
4401debfc3dSmrg int32_t
omp_get_team_size_8_(const int64_t * level)4411debfc3dSmrg omp_get_team_size_8_ (const int64_t *level)
4421debfc3dSmrg {
4431debfc3dSmrg   return omp_get_team_size (TO_INT (*level));
4441debfc3dSmrg }
4451debfc3dSmrg 
4461debfc3dSmrg int32_t
omp_get_active_level_(void)4471debfc3dSmrg omp_get_active_level_ (void)
4481debfc3dSmrg {
4491debfc3dSmrg   return omp_get_active_level ();
4501debfc3dSmrg }
4511debfc3dSmrg 
4521debfc3dSmrg int32_t
omp_in_final_(void)4531debfc3dSmrg omp_in_final_ (void)
4541debfc3dSmrg {
4551debfc3dSmrg   return omp_in_final ();
4561debfc3dSmrg }
4571debfc3dSmrg 
4581debfc3dSmrg int32_t
omp_get_cancellation_(void)4591debfc3dSmrg omp_get_cancellation_ (void)
4601debfc3dSmrg {
4611debfc3dSmrg   return omp_get_cancellation ();
4621debfc3dSmrg }
4631debfc3dSmrg 
4641debfc3dSmrg int32_t
omp_get_proc_bind_(void)4651debfc3dSmrg omp_get_proc_bind_ (void)
4661debfc3dSmrg {
4671debfc3dSmrg   return omp_get_proc_bind ();
4681debfc3dSmrg }
4691debfc3dSmrg 
4701debfc3dSmrg int32_t
omp_get_num_places_(void)4711debfc3dSmrg omp_get_num_places_ (void)
4721debfc3dSmrg {
4731debfc3dSmrg   return omp_get_num_places ();
4741debfc3dSmrg }
4751debfc3dSmrg 
4761debfc3dSmrg int32_t
omp_get_place_num_procs_(const int32_t * place_num)4771debfc3dSmrg omp_get_place_num_procs_ (const int32_t *place_num)
4781debfc3dSmrg {
4791debfc3dSmrg   return omp_get_place_num_procs (*place_num);
4801debfc3dSmrg }
4811debfc3dSmrg 
4821debfc3dSmrg int32_t
omp_get_place_num_procs_8_(const int64_t * place_num)4831debfc3dSmrg omp_get_place_num_procs_8_ (const int64_t *place_num)
4841debfc3dSmrg {
4851debfc3dSmrg   return omp_get_place_num_procs (TO_INT (*place_num));
4861debfc3dSmrg }
4871debfc3dSmrg 
4881debfc3dSmrg void
omp_get_place_proc_ids_(const int32_t * place_num,int32_t * ids)4891debfc3dSmrg omp_get_place_proc_ids_ (const int32_t *place_num, int32_t *ids)
4901debfc3dSmrg {
4911debfc3dSmrg   omp_get_place_proc_ids (*place_num, (int *) ids);
4921debfc3dSmrg }
4931debfc3dSmrg 
4941debfc3dSmrg void
omp_get_place_proc_ids_8_(const int64_t * place_num,int64_t * ids)4951debfc3dSmrg omp_get_place_proc_ids_8_ (const int64_t *place_num, int64_t *ids)
4961debfc3dSmrg {
4971debfc3dSmrg   gomp_get_place_proc_ids_8 (TO_INT (*place_num), ids);
4981debfc3dSmrg }
4991debfc3dSmrg 
5001debfc3dSmrg int32_t
omp_get_place_num_(void)5011debfc3dSmrg omp_get_place_num_ (void)
5021debfc3dSmrg {
5031debfc3dSmrg   return omp_get_place_num ();
5041debfc3dSmrg }
5051debfc3dSmrg 
5061debfc3dSmrg int32_t
omp_get_partition_num_places_(void)5071debfc3dSmrg omp_get_partition_num_places_ (void)
5081debfc3dSmrg {
5091debfc3dSmrg   return omp_get_partition_num_places ();
5101debfc3dSmrg }
5111debfc3dSmrg 
5121debfc3dSmrg void
omp_get_partition_place_nums_(int32_t * place_nums)5131debfc3dSmrg omp_get_partition_place_nums_ (int32_t *place_nums)
5141debfc3dSmrg {
5151debfc3dSmrg   omp_get_partition_place_nums ((int *) place_nums);
5161debfc3dSmrg }
5171debfc3dSmrg 
5181debfc3dSmrg void
omp_get_partition_place_nums_8_(int64_t * place_nums)5191debfc3dSmrg omp_get_partition_place_nums_8_ (int64_t *place_nums)
5201debfc3dSmrg {
5211debfc3dSmrg   if (gomp_places_list == NULL)
5221debfc3dSmrg     return;
5231debfc3dSmrg 
5241debfc3dSmrg   struct gomp_thread *thr = gomp_thread ();
5251debfc3dSmrg   if (thr->place == 0)
5261debfc3dSmrg     gomp_init_affinity ();
5271debfc3dSmrg 
5281debfc3dSmrg   unsigned int i;
5291debfc3dSmrg   for (i = 0; i < thr->ts.place_partition_len; i++)
5301debfc3dSmrg     *place_nums++ = (int64_t) thr->ts.place_partition_off + i;
5311debfc3dSmrg }
5321debfc3dSmrg 
5331debfc3dSmrg void
omp_set_default_device_(const int32_t * device_num)5341debfc3dSmrg omp_set_default_device_ (const int32_t *device_num)
5351debfc3dSmrg {
5361debfc3dSmrg   return omp_set_default_device (*device_num);
5371debfc3dSmrg }
5381debfc3dSmrg 
5391debfc3dSmrg void
omp_set_default_device_8_(const int64_t * device_num)5401debfc3dSmrg omp_set_default_device_8_ (const int64_t *device_num)
5411debfc3dSmrg {
5421debfc3dSmrg   return omp_set_default_device (TO_INT (*device_num));
5431debfc3dSmrg }
5441debfc3dSmrg 
5451debfc3dSmrg int32_t
omp_get_default_device_(void)5461debfc3dSmrg omp_get_default_device_ (void)
5471debfc3dSmrg {
5481debfc3dSmrg   return omp_get_default_device ();
5491debfc3dSmrg }
5501debfc3dSmrg 
5511debfc3dSmrg int32_t
omp_get_num_devices_(void)5521debfc3dSmrg omp_get_num_devices_ (void)
5531debfc3dSmrg {
5541debfc3dSmrg   return omp_get_num_devices ();
5551debfc3dSmrg }
5561debfc3dSmrg 
5571debfc3dSmrg int32_t
omp_get_num_teams_(void)5581debfc3dSmrg omp_get_num_teams_ (void)
5591debfc3dSmrg {
5601debfc3dSmrg   return omp_get_num_teams ();
5611debfc3dSmrg }
5621debfc3dSmrg 
5631debfc3dSmrg int32_t
omp_get_team_num_(void)5641debfc3dSmrg omp_get_team_num_ (void)
5651debfc3dSmrg {
5661debfc3dSmrg   return omp_get_team_num ();
5671debfc3dSmrg }
5681debfc3dSmrg 
5691debfc3dSmrg int32_t
omp_is_initial_device_(void)5701debfc3dSmrg omp_is_initial_device_ (void)
5711debfc3dSmrg {
5721debfc3dSmrg   return omp_is_initial_device ();
5731debfc3dSmrg }
5741debfc3dSmrg 
5751debfc3dSmrg int32_t
omp_get_initial_device_(void)5761debfc3dSmrg omp_get_initial_device_ (void)
5771debfc3dSmrg {
5781debfc3dSmrg   return omp_get_initial_device ();
5791debfc3dSmrg }
5801debfc3dSmrg 
5811debfc3dSmrg int32_t
omp_get_max_task_priority_(void)5821debfc3dSmrg omp_get_max_task_priority_ (void)
5831debfc3dSmrg {
5841debfc3dSmrg   return omp_get_max_task_priority ();
5851debfc3dSmrg }
586c0a68be4Smrg 
587c0a68be4Smrg void
omp_set_affinity_format_(const char * format,size_t format_len)588c0a68be4Smrg omp_set_affinity_format_ (const char *format, size_t format_len)
589c0a68be4Smrg {
590c0a68be4Smrg   gomp_set_affinity_format (format, format_len);
591c0a68be4Smrg }
592c0a68be4Smrg 
593c0a68be4Smrg int32_t
omp_get_affinity_format_(char * buffer,size_t buffer_len)594c0a68be4Smrg omp_get_affinity_format_ (char *buffer, size_t buffer_len)
595c0a68be4Smrg {
596c0a68be4Smrg   size_t len = strlen (gomp_affinity_format_var);
597c0a68be4Smrg   if (buffer_len)
598c0a68be4Smrg     {
599c0a68be4Smrg       if (len < buffer_len)
600c0a68be4Smrg 	{
601c0a68be4Smrg 	  memcpy (buffer, gomp_affinity_format_var, len);
602c0a68be4Smrg 	  memset (buffer + len, ' ', buffer_len - len);
603c0a68be4Smrg 	}
604c0a68be4Smrg       else
605c0a68be4Smrg 	memcpy (buffer, gomp_affinity_format_var, buffer_len);
606c0a68be4Smrg     }
607c0a68be4Smrg   return len;
608c0a68be4Smrg }
609c0a68be4Smrg 
610c0a68be4Smrg void
omp_display_affinity_(const char * format,size_t format_len)611c0a68be4Smrg omp_display_affinity_ (const char *format, size_t format_len)
612c0a68be4Smrg {
613c0a68be4Smrg   char *fmt = NULL, fmt_buf[256];
614c0a68be4Smrg   char buf[512];
615c0a68be4Smrg   if (format_len)
616c0a68be4Smrg     {
617c0a68be4Smrg       fmt = format_len < 256 ? fmt_buf : gomp_malloc (format_len + 1);
618c0a68be4Smrg       memcpy (fmt, format, format_len);
619c0a68be4Smrg       fmt[format_len] = '\0';
620c0a68be4Smrg     }
621c0a68be4Smrg   struct gomp_thread *thr = gomp_thread ();
622c0a68be4Smrg   size_t ret
623c0a68be4Smrg     = gomp_display_affinity (buf, sizeof buf,
624c0a68be4Smrg 			     format_len ? fmt : gomp_affinity_format_var,
625c0a68be4Smrg 			     gomp_thread_self (), &thr->ts, thr->place);
626c0a68be4Smrg   if (ret < sizeof buf)
627c0a68be4Smrg     {
628c0a68be4Smrg       buf[ret] = '\n';
629c0a68be4Smrg       gomp_print_string (buf, ret + 1);
630c0a68be4Smrg     }
631c0a68be4Smrg   else
632c0a68be4Smrg     {
633c0a68be4Smrg       char *b = gomp_malloc (ret + 1);
634c0a68be4Smrg       gomp_display_affinity (buf, sizeof buf,
635c0a68be4Smrg 			     format_len ? fmt : gomp_affinity_format_var,
636c0a68be4Smrg 			     gomp_thread_self (), &thr->ts, thr->place);
637c0a68be4Smrg       b[ret] = '\n';
638c0a68be4Smrg       gomp_print_string (b, ret + 1);
639c0a68be4Smrg       free (b);
640c0a68be4Smrg     }
641c0a68be4Smrg   if (fmt && fmt != fmt_buf)
642c0a68be4Smrg     free (fmt);
643c0a68be4Smrg }
644c0a68be4Smrg 
645c0a68be4Smrg int32_t
omp_capture_affinity_(char * buffer,const char * format,size_t buffer_len,size_t format_len)646c0a68be4Smrg omp_capture_affinity_ (char *buffer, const char *format,
647c0a68be4Smrg 		       size_t buffer_len, size_t format_len)
648c0a68be4Smrg {
649c0a68be4Smrg   char *fmt = NULL, fmt_buf[256];
650c0a68be4Smrg   if (format_len)
651c0a68be4Smrg     {
652c0a68be4Smrg       fmt = format_len < 256 ? fmt_buf : gomp_malloc (format_len + 1);
653c0a68be4Smrg       memcpy (fmt, format, format_len);
654c0a68be4Smrg       fmt[format_len] = '\0';
655c0a68be4Smrg     }
656c0a68be4Smrg   struct gomp_thread *thr = gomp_thread ();
657c0a68be4Smrg   size_t ret
658c0a68be4Smrg     = gomp_display_affinity (buffer, buffer_len,
659c0a68be4Smrg 			     format_len ? fmt : gomp_affinity_format_var,
660c0a68be4Smrg 			     gomp_thread_self (), &thr->ts, thr->place);
661c0a68be4Smrg   if (fmt && fmt != fmt_buf)
662c0a68be4Smrg     free (fmt);
663c0a68be4Smrg   if (ret < buffer_len)
664c0a68be4Smrg     memset (buffer + ret, ' ', buffer_len - ret);
665c0a68be4Smrg   return ret;
666c0a68be4Smrg }
667c0a68be4Smrg 
668c0a68be4Smrg int32_t
omp_pause_resource_(const int32_t * kind,const int32_t * device_num)669c0a68be4Smrg omp_pause_resource_ (const int32_t *kind, const int32_t *device_num)
670c0a68be4Smrg {
671c0a68be4Smrg   return omp_pause_resource (*kind, *device_num);
672c0a68be4Smrg }
673c0a68be4Smrg 
674c0a68be4Smrg int32_t
omp_pause_resource_all_(const int32_t * kind)675c0a68be4Smrg omp_pause_resource_all_ (const int32_t *kind)
676c0a68be4Smrg {
677c0a68be4Smrg   return omp_pause_resource_all (*kind);
678c0a68be4Smrg }
679