Home | History | Annotate | Line # | Download | only in libgomp
      1  1.12  mrg !  Copyright (C) 2005-2022 Free Software Foundation, Inc.
      2   1.1  mrg !  Contributed by Jakub Jelinek <jakub (a] redhat.com>.
      3   1.1  mrg 
      4   1.5  mrg !  This file is part of the GNU Offloading and Multi Processing Library
      5   1.5  mrg !  (libgomp).
      6   1.1  mrg 
      7   1.1  mrg !  Libgomp is free software; you can redistribute it and/or modify it
      8   1.1  mrg !  under the terms of the GNU General Public License as published by
      9   1.1  mrg !  the Free Software Foundation; either version 3, or (at your option)
     10   1.1  mrg !  any later version.
     11   1.1  mrg 
     12   1.1  mrg !  Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
     13   1.1  mrg !  WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
     14   1.1  mrg !  FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
     15   1.1  mrg !  more details.
     16   1.1  mrg 
     17   1.1  mrg !  Under Section 7 of GPL version 3, you are granted additional
     18   1.1  mrg !  permissions described in the GCC Runtime Library Exception, version
     19   1.1  mrg !  3.1, as published by the Free Software Foundation.
     20   1.1  mrg 
     21   1.1  mrg !  You should have received a copy of the GNU General Public License and
     22   1.1  mrg !  a copy of the GCC Runtime Library Exception along with this program;
     23   1.1  mrg !  see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
     24   1.1  mrg !  <http://www.gnu.org/licenses/>.
     25   1.1  mrg 
     26   1.1  mrg       integer omp_lock_kind, omp_nest_lock_kind, openmp_version
     27   1.1  mrg       parameter (omp_lock_kind = @OMP_LOCK_KIND@)
     28   1.1  mrg       parameter (omp_nest_lock_kind = @OMP_NEST_LOCK_KIND@)
     29  1.12  mrg       integer omp_depend_kind
     30  1.12  mrg       parameter (omp_depend_kind = @OMP_DEPEND_KIND@)
     31   1.3  mrg       integer omp_sched_kind
     32   1.1  mrg       parameter (omp_sched_kind = 4)
     33   1.3  mrg       integer (omp_sched_kind) omp_sched_static, omp_sched_dynamic
     34   1.3  mrg       integer (omp_sched_kind) omp_sched_guided, omp_sched_auto
     35   1.1  mrg       parameter (omp_sched_static = 1)
     36   1.1  mrg       parameter (omp_sched_dynamic = 2)
     37   1.1  mrg       parameter (omp_sched_guided = 3)
     38   1.1  mrg       parameter (omp_sched_auto = 4)
     39   1.5  mrg       integer omp_proc_bind_kind
     40   1.5  mrg       parameter (omp_proc_bind_kind = 4)
     41   1.5  mrg       integer (omp_proc_bind_kind) omp_proc_bind_false
     42   1.5  mrg       integer (omp_proc_bind_kind) omp_proc_bind_true
     43  1.12  mrg       integer (omp_proc_bind_kind) omp_proc_bind_primary
     44   1.5  mrg       integer (omp_proc_bind_kind) omp_proc_bind_master
     45   1.5  mrg       integer (omp_proc_bind_kind) omp_proc_bind_close
     46   1.5  mrg       integer (omp_proc_bind_kind) omp_proc_bind_spread
     47   1.5  mrg       parameter (omp_proc_bind_false = 0)
     48   1.5  mrg       parameter (omp_proc_bind_true = 1)
     49  1.12  mrg       parameter (omp_proc_bind_primary = 2)
     50   1.5  mrg       parameter (omp_proc_bind_master = 2)
     51   1.5  mrg       parameter (omp_proc_bind_close = 3)
     52   1.5  mrg       parameter (omp_proc_bind_spread = 4)
     53  1.12  mrg       integer omp_sync_hint_kind
     54   1.6  mrg       integer omp_lock_hint_kind
     55  1.12  mrg       parameter (omp_sync_hint_kind = 4)
     56  1.12  mrg       parameter (omp_lock_hint_kind = omp_sync_hint_kind)
     57  1.12  mrg       integer (omp_sync_hint_kind) omp_sync_hint_none
     58   1.6  mrg       integer (omp_lock_hint_kind) omp_lock_hint_none
     59  1.12  mrg       integer (omp_sync_hint_kind) omp_sync_hint_uncontended
     60   1.6  mrg       integer (omp_lock_hint_kind) omp_lock_hint_uncontended
     61  1.12  mrg       integer (omp_sync_hint_kind) omp_sync_hint_contended
     62  1.12  mrg       integer (omp_sync_hint_kind) omp_lock_hint_contended
     63  1.12  mrg       integer (omp_lock_hint_kind) omp_sync_hint_nonspeculative
     64   1.6  mrg       integer (omp_lock_hint_kind) omp_lock_hint_nonspeculative
     65  1.12  mrg       integer (omp_sync_hint_kind) omp_sync_hint_speculative
     66   1.6  mrg       integer (omp_lock_hint_kind) omp_lock_hint_speculative
     67  1.12  mrg       parameter (omp_sync_hint_none = 0)
     68   1.6  mrg       parameter (omp_lock_hint_none = 0)
     69  1.12  mrg       parameter (omp_sync_hint_uncontended = 1)
     70   1.6  mrg       parameter (omp_lock_hint_uncontended = 1)
     71  1.12  mrg       parameter (omp_sync_hint_contended = 2)
     72   1.6  mrg       parameter (omp_lock_hint_contended = 2)
     73  1.12  mrg       parameter (omp_sync_hint_nonspeculative = 4)
     74   1.6  mrg       parameter (omp_lock_hint_nonspeculative = 4)
     75  1.12  mrg       parameter (omp_sync_hint_speculative = 8)
     76   1.6  mrg       parameter (omp_lock_hint_speculative = 8)
     77   1.8  mrg       parameter (openmp_version = 201511)
     78  1.10  mrg       integer omp_pause_resource_kind
     79  1.10  mrg       parameter (omp_pause_resource_kind = 4)
     80  1.10  mrg       integer (omp_pause_resource_kind) omp_pause_soft
     81  1.10  mrg       integer (omp_pause_resource_kind) omp_pause_hard
     82  1.10  mrg       parameter (omp_pause_soft = 1)
     83  1.10  mrg       parameter (omp_pause_hard = 2)
     84   1.1  mrg 
     85  1.12  mrg       integer omp_allocator_handle_kind, omp_alloctrait_key_kind
     86  1.12  mrg       integer omp_alloctrait_val_kind, omp_memspace_handle_kind
     87  1.12  mrg       integer omp_event_handle_kind
     88  1.12  mrg       parameter (omp_allocator_handle_kind = @INTPTR_T_KIND@)
     89  1.12  mrg       parameter (omp_alloctrait_key_kind = 4)
     90  1.12  mrg       parameter (omp_alloctrait_val_kind = @INTPTR_T_KIND@)
     91  1.12  mrg       parameter (omp_memspace_handle_kind = @INTPTR_T_KIND@)
     92  1.12  mrg       parameter (omp_event_handle_kind = @INTPTR_T_KIND@)
     93  1.12  mrg       integer (omp_alloctrait_key_kind) omp_atk_sync_hint
     94  1.12  mrg       integer (omp_alloctrait_key_kind) omp_atk_alignment
     95  1.12  mrg       integer (omp_alloctrait_key_kind) omp_atk_access
     96  1.12  mrg       integer (omp_alloctrait_key_kind) omp_atk_pool_size
     97  1.12  mrg       integer (omp_alloctrait_key_kind) omp_atk_fallback
     98  1.12  mrg       integer (omp_alloctrait_key_kind) omp_atk_fb_data
     99  1.12  mrg       integer (omp_alloctrait_key_kind) omp_atk_pinned
    100  1.12  mrg       integer (omp_alloctrait_key_kind) omp_atk_partition
    101  1.12  mrg       parameter (omp_atk_sync_hint = 1)
    102  1.12  mrg       parameter (omp_atk_alignment = 2)
    103  1.12  mrg       parameter (omp_atk_access = 3)
    104  1.12  mrg       parameter (omp_atk_pool_size = 4)
    105  1.12  mrg       parameter (omp_atk_fallback = 5)
    106  1.12  mrg       parameter (omp_atk_fb_data = 6)
    107  1.12  mrg       parameter (omp_atk_pinned = 7)
    108  1.12  mrg       parameter (omp_atk_partition = 8)
    109  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_false
    110  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_true
    111  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_default
    112  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_contended
    113  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_uncontended
    114  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_serialized
    115  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_sequential
    116  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_private
    117  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_all
    118  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_thread
    119  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_pteam
    120  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_cgroup
    121  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_default_mem_fb
    122  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_null_fb
    123  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_abort_fb
    124  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_allocator_fb
    125  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_environment
    126  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_nearest
    127  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_blocked
    128  1.12  mrg       integer (omp_alloctrait_val_kind) omp_atv_interleaved
    129  1.12  mrg       parameter (omp_atv_default = -1)
    130  1.12  mrg       parameter (omp_atv_false = 0)
    131  1.12  mrg       parameter (omp_atv_true = 1)
    132  1.12  mrg       parameter (omp_atv_contended = 3)
    133  1.12  mrg       parameter (omp_atv_uncontended = 4)
    134  1.12  mrg       parameter (omp_atv_serialized = 5)
    135  1.12  mrg       parameter (omp_atv_sequential = omp_atv_serialized)
    136  1.12  mrg       parameter (omp_atv_private = 6)
    137  1.12  mrg       parameter (omp_atv_all = 7)
    138  1.12  mrg       parameter (omp_atv_thread = 8)
    139  1.12  mrg       parameter (omp_atv_pteam = 9)
    140  1.12  mrg       parameter (omp_atv_cgroup = 10)
    141  1.12  mrg       parameter (omp_atv_default_mem_fb = 11)
    142  1.12  mrg       parameter (omp_atv_null_fb = 12)
    143  1.12  mrg       parameter (omp_atv_abort_fb = 13)
    144  1.12  mrg       parameter (omp_atv_allocator_fb = 14)
    145  1.12  mrg       parameter (omp_atv_environment = 15)
    146  1.12  mrg       parameter (omp_atv_nearest = 16)
    147  1.12  mrg       parameter (omp_atv_blocked = 17)
    148  1.12  mrg       parameter (omp_atv_interleaved = 18)
    149  1.12  mrg       integer (omp_allocator_handle_kind) omp_null_allocator
    150  1.12  mrg       integer (omp_allocator_handle_kind) omp_default_mem_alloc
    151  1.12  mrg       integer (omp_allocator_handle_kind) omp_large_cap_mem_alloc
    152  1.12  mrg       integer (omp_allocator_handle_kind) omp_const_mem_alloc
    153  1.12  mrg       integer (omp_allocator_handle_kind) omp_high_bw_mem_alloc
    154  1.12  mrg       integer (omp_allocator_handle_kind) omp_low_lat_mem_alloc
    155  1.12  mrg       integer (omp_allocator_handle_kind) omp_cgroup_mem_alloc
    156  1.12  mrg       integer (omp_allocator_handle_kind) omp_pteam_mem_alloc
    157  1.12  mrg       integer (omp_allocator_handle_kind) omp_thread_mem_alloc
    158  1.12  mrg       parameter (omp_null_allocator = 0)
    159  1.12  mrg       parameter (omp_default_mem_alloc = 1)
    160  1.12  mrg       parameter (omp_large_cap_mem_alloc = 2)
    161  1.12  mrg       parameter (omp_const_mem_alloc = 3)
    162  1.12  mrg       parameter (omp_high_bw_mem_alloc = 4)
    163  1.12  mrg       parameter (omp_low_lat_mem_alloc = 5)
    164  1.12  mrg       parameter (omp_cgroup_mem_alloc = 6)
    165  1.12  mrg       parameter (omp_pteam_mem_alloc = 7)
    166  1.12  mrg       parameter (omp_thread_mem_alloc = 8)
    167  1.12  mrg       integer (omp_memspace_handle_kind) omp_default_mem_space
    168  1.12  mrg       integer (omp_memspace_handle_kind) omp_large_cap_mem_space
    169  1.12  mrg       integer (omp_memspace_handle_kind) omp_const_mem_space
    170  1.12  mrg       integer (omp_memspace_handle_kind) omp_high_bw_mem_space
    171  1.12  mrg       integer (omp_memspace_handle_kind) omp_low_lat_mem_space
    172  1.12  mrg       parameter (omp_default_mem_space = 0)
    173  1.12  mrg       parameter (omp_large_cap_mem_space = 1)
    174  1.12  mrg       parameter (omp_const_mem_space = 2)
    175  1.12  mrg       parameter (omp_high_bw_mem_space = 3)
    176  1.12  mrg       parameter (omp_low_lat_mem_space = 4)
    177  1.12  mrg 
    178  1.12  mrg       type omp_alloctrait
    179  1.12  mrg         integer (omp_alloctrait_key_kind) key
    180  1.12  mrg         integer (omp_alloctrait_val_kind) value
    181  1.12  mrg       end type omp_alloctrait
    182  1.12  mrg 
    183   1.1  mrg       external omp_init_lock, omp_init_nest_lock
    184   1.6  mrg       external omp_init_lock_with_hint
    185   1.6  mrg       external omp_init_nest_lock_with_hint
    186   1.1  mrg       external omp_destroy_lock, omp_destroy_nest_lock
    187   1.1  mrg       external omp_set_lock, omp_set_nest_lock
    188   1.1  mrg       external omp_unset_lock, omp_unset_nest_lock
    189   1.1  mrg       external omp_set_dynamic, omp_set_nested
    190   1.1  mrg       external omp_set_num_threads
    191   1.1  mrg 
    192   1.1  mrg       external omp_get_dynamic, omp_get_nested
    193   1.1  mrg       logical(4) omp_get_dynamic, omp_get_nested
    194   1.1  mrg       external omp_test_lock, omp_in_parallel
    195   1.1  mrg       logical(4) omp_test_lock, omp_in_parallel
    196   1.1  mrg 
    197   1.1  mrg       external omp_get_max_threads, omp_get_num_procs
    198   1.1  mrg       integer(4) omp_get_max_threads, omp_get_num_procs
    199   1.1  mrg       external omp_get_num_threads, omp_get_thread_num
    200   1.1  mrg       integer(4) omp_get_num_threads, omp_get_thread_num
    201   1.1  mrg       external omp_test_nest_lock
    202   1.1  mrg       integer(4) omp_test_nest_lock
    203   1.1  mrg 
    204   1.1  mrg       external omp_get_wtick, omp_get_wtime
    205   1.1  mrg       double precision omp_get_wtick, omp_get_wtime
    206   1.1  mrg 
    207   1.1  mrg       external omp_set_schedule, omp_get_schedule
    208   1.1  mrg       external omp_get_thread_limit, omp_set_max_active_levels
    209   1.1  mrg       external omp_get_max_active_levels, omp_get_level
    210   1.1  mrg       external omp_get_ancestor_thread_num, omp_get_team_size
    211   1.1  mrg       external omp_get_active_level
    212  1.12  mrg       external omp_get_supported_active_levels
    213   1.1  mrg       integer(4) omp_get_thread_limit, omp_get_max_active_levels
    214   1.1  mrg       integer(4) omp_get_level, omp_get_ancestor_thread_num
    215   1.1  mrg       integer(4) omp_get_team_size, omp_get_active_level
    216  1.12  mrg       integer(4) omp_get_supported_active_levels
    217   1.3  mrg 
    218   1.3  mrg       external omp_in_final
    219   1.3  mrg       logical(4) omp_in_final
    220   1.5  mrg 
    221   1.9  mrg       external omp_get_cancellation
    222   1.9  mrg       logical(4) omp_get_cancellation
    223   1.5  mrg 
    224   1.5  mrg       external omp_get_proc_bind
    225   1.5  mrg       integer(omp_proc_bind_kind) omp_get_proc_bind
    226   1.5  mrg 
    227   1.6  mrg       integer(4) omp_get_num_places
    228   1.6  mrg       external omp_get_num_places
    229   1.6  mrg       integer(4) omp_get_place_num_procs
    230   1.6  mrg       external omp_get_place_num_procs
    231   1.6  mrg       external omp_get_place_proc_ids
    232   1.6  mrg       integer(4) omp_get_place_num
    233   1.6  mrg       external omp_get_place_num
    234   1.6  mrg       integer(4) omp_get_partition_num_places
    235   1.6  mrg       external omp_get_partition_num_places
    236   1.6  mrg       external omp_get_partition_place_nums
    237   1.6  mrg 
    238   1.5  mrg       external omp_set_default_device, omp_get_default_device
    239   1.5  mrg       external omp_get_num_devices, omp_get_num_teams
    240   1.5  mrg       external omp_get_team_num
    241   1.5  mrg       integer(4) omp_get_default_device, omp_get_num_devices
    242   1.5  mrg       integer(4) omp_get_num_teams, omp_get_team_num
    243   1.5  mrg 
    244   1.5  mrg       external omp_is_initial_device
    245   1.5  mrg       logical(4) omp_is_initial_device
    246   1.6  mrg       external omp_get_initial_device
    247   1.6  mrg       integer(4) omp_get_initial_device
    248   1.6  mrg 
    249  1.12  mrg       external omp_get_device_num
    250  1.12  mrg       integer(4) omp_get_device_num
    251  1.12  mrg 
    252   1.6  mrg       external omp_get_max_task_priority
    253   1.6  mrg       integer(4) omp_get_max_task_priority
    254  1.10  mrg 
    255  1.12  mrg       external omp_set_num_teams, omp_set_teams_thread_limit
    256  1.12  mrg       external omp_get_max_teams, omp_get_teams_thread_limit
    257  1.12  mrg       integer(4) omp_get_max_teams, omp_get_teams_thread_limit
    258  1.12  mrg 
    259  1.12  mrg       external omp_fulfill_event
    260  1.12  mrg 
    261  1.10  mrg       external omp_set_affinity_format, omp_get_affinity_format
    262  1.10  mrg       external omp_display_affinity, omp_capture_affinity
    263  1.10  mrg       integer(4) omp_get_affinity_format
    264  1.10  mrg       integer(4) omp_capture_affinity
    265  1.10  mrg 
    266  1.10  mrg       external omp_pause_resource, omp_pause_resource_all
    267  1.10  mrg       integer(4) omp_pause_resource
    268  1.10  mrg       integer(4) omp_pause_resource_all
    269  1.12  mrg 
    270  1.12  mrg       external omp_init_allocator
    271  1.12  mrg       integer (omp_allocator_handle_kind) omp_init_allocator
    272  1.12  mrg       external omp_destroy_allocator
    273  1.12  mrg       external omp_set_default_allocator
    274  1.12  mrg       external omp_get_default_allocator
    275  1.12  mrg       integer (omp_allocator_handle_kind) omp_get_default_allocator
    276  1.12  mrg 
    277  1.12  mrg       external omp_display_env
    278  1.12  mrg 
    279  1.12  mrg       interface
    280  1.12  mrg         function omp_alloc (size, allocator) bind(c)
    281  1.12  mrg           use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
    282  1.12  mrg           use, intrinsic :: omp_lib_kinds
    283  1.12  mrg           type(c_ptr) :: omp_alloc
    284  1.12  mrg           integer(c_size_t), value :: size
    285  1.12  mrg           integer(omp_allocator_handle_kind), value :: allocator
    286  1.12  mrg         end function omp_alloc
    287  1.12  mrg       end interface
    288  1.12  mrg 
    289  1.12  mrg       interface
    290  1.12  mrg         function omp_aligned_alloc (alignment, size, allocator) bind(c)
    291  1.12  mrg           use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
    292  1.12  mrg           use, intrinsic :: omp_lib_kinds
    293  1.12  mrg           type(c_ptr) :: omp_aligned_alloc
    294  1.12  mrg           integer(c_size_t), value :: alignment, size
    295  1.12  mrg           integer(omp_allocator_handle_kind), value :: allocator
    296  1.12  mrg         end function omp_aligned_alloc
    297  1.12  mrg       end interface
    298  1.12  mrg 
    299  1.12  mrg       interface
    300  1.12  mrg         subroutine omp_free(ptr, allocator) bind(c)
    301  1.12  mrg           use, intrinsic :: iso_c_binding, only : c_ptr
    302  1.12  mrg           use, intrinsic :: omp_lib_kinds
    303  1.12  mrg           type(c_ptr), value :: ptr
    304  1.12  mrg           integer(omp_allocator_handle_kind), value :: allocator
    305  1.12  mrg         end subroutine omp_free
    306  1.12  mrg       end interface
    307  1.12  mrg 
    308  1.12  mrg       interface
    309  1.12  mrg         function omp_calloc (nmemb, size, allocator) bind(c)
    310  1.12  mrg           use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
    311  1.12  mrg           use, intrinsic :: omp_lib_kinds
    312  1.12  mrg           type(c_ptr) :: omp_calloc
    313  1.12  mrg           integer(c_size_t), value :: nmemb, size
    314  1.12  mrg           integer(omp_allocator_handle_kind), value :: allocator
    315  1.12  mrg         end function omp_calloc
    316  1.12  mrg       end interface
    317  1.12  mrg 
    318  1.12  mrg       interface
    319  1.12  mrg         function omp_aligned_calloc (alignment, nmemb, size, allocator)   &
    320  1.12  mrg      &      bind(c)
    321  1.12  mrg           use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
    322  1.12  mrg           use, intrinsic :: omp_lib_kinds
    323  1.12  mrg           type(c_ptr) :: omp_aligned_calloc
    324  1.12  mrg           integer(c_size_t), value :: alignment, nmemb, size
    325  1.12  mrg           integer(omp_allocator_handle_kind), value :: allocator
    326  1.12  mrg         end function omp_aligned_calloc
    327  1.12  mrg       end interface
    328  1.12  mrg 
    329  1.12  mrg       interface
    330  1.12  mrg         function omp_realloc (ptr, size, allocator, free_allocator)      &
    331  1.12  mrg      &      bind(c)
    332  1.12  mrg           use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t
    333  1.12  mrg           use, intrinsic :: omp_lib_kinds
    334  1.12  mrg           type(c_ptr) :: omp_realloc
    335  1.12  mrg           type(c_ptr), value :: ptr
    336  1.12  mrg           integer(c_size_t), value :: size
    337  1.12  mrg           integer(omp_allocator_handle_kind), value :: allocator
    338  1.12  mrg           integer(omp_allocator_handle_kind), value :: free_allocator
    339  1.12  mrg         end function omp_realloc
    340  1.12  mrg       end interface
    341  1.12  mrg 
    342  1.12  mrg       interface
    343  1.12  mrg         function omp_target_alloc (size, device_num) bind(c)
    344  1.12  mrg           use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
    345  1.12  mrg           type(c_ptr) :: omp_target_alloc
    346  1.12  mrg           integer(c_size_t), value :: size
    347  1.12  mrg           integer(c_int), value :: device_num
    348  1.12  mrg         end function omp_target_alloc
    349  1.12  mrg       end interface
    350  1.12  mrg 
    351  1.12  mrg       interface
    352  1.12  mrg         subroutine omp_target_free (device_ptr, device_num) bind(c)
    353  1.12  mrg           use, intrinsic :: iso_c_binding, only : c_ptr, c_int
    354  1.12  mrg           type(c_ptr), value :: device_ptr
    355  1.12  mrg           integer(c_int), value :: device_num
    356  1.12  mrg         end subroutine omp_target_free
    357  1.12  mrg       end interface
    358  1.12  mrg 
    359  1.12  mrg       interface
    360  1.12  mrg         function omp_target_is_present (ptr, device_num) bind(c)
    361  1.12  mrg           use, intrinsic :: iso_c_binding, only : c_ptr, c_int
    362  1.12  mrg           integer(c_int) :: omp_target_is_present
    363  1.12  mrg           type(c_ptr), value :: ptr
    364  1.12  mrg           integer(c_int), value :: device_num
    365  1.12  mrg         end function omp_target_is_present
    366  1.12  mrg       end interface
    367  1.12  mrg 
    368  1.12  mrg       interface
    369  1.12  mrg         function omp_target_memcpy (dst, src, length, dst_offset,          &
    370  1.12  mrg      &                              src_offset, dst_device_num,            &
    371  1.12  mrg      &                              src_device_num) bind(c)
    372  1.12  mrg           use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
    373  1.12  mrg           integer(c_int) :: omp_target_memcpy
    374  1.12  mrg           type(c_ptr), value :: dst, src
    375  1.12  mrg           integer(c_size_t), value :: length, dst_offset, src_offset
    376  1.12  mrg           integer(c_int), value :: dst_device_num, src_device_num
    377  1.12  mrg         end function omp_target_memcpy
    378  1.12  mrg       end interface
    379  1.12  mrg 
    380  1.12  mrg       interface
    381  1.12  mrg         function omp_target_memcpy_rect (dst,src,element_size, num_dims,   &
    382  1.12  mrg      &                                   volume, dst_offsets,              &
    383  1.12  mrg      &                                   src_offsets, dst_dimensions,      &
    384  1.12  mrg      &                                   src_dimensions, dst_device_num,   &
    385  1.12  mrg      &                                   src_device_num) bind(c)
    386  1.12  mrg           use, intrinsic :: iso_c_binding, only : c_ptr, c_int, c_size_t
    387  1.12  mrg           integer(c_int) :: omp_target_memcpy_rect
    388  1.12  mrg           type(c_ptr), value :: dst, src
    389  1.12  mrg           integer(c_size_t), value :: element_size
    390  1.12  mrg           integer(c_int), value :: num_dims
    391  1.12  mrg           integer(c_int), value :: dst_device_num, src_device_num
    392  1.12  mrg           integer(c_size_t), intent(in) :: volume(*), dst_offsets(*)
    393  1.12  mrg           integer(c_size_t), intent(in) :: src_offsets(*)
    394  1.12  mrg           integer(c_size_t), intent(in) :: dst_dimensions(*)
    395  1.12  mrg           integer(c_size_t), intent(in) :: src_dimensions(*)
    396  1.12  mrg         end function omp_target_memcpy_rect
    397  1.12  mrg       end interface
    398  1.12  mrg 
    399  1.12  mrg       interface
    400  1.12  mrg         function omp_target_associate_ptr (host_ptr, device_ptr, size,     &
    401  1.12  mrg      &                                     device_offset, device_num)      &
    402  1.12  mrg      &      bind(c)
    403  1.12  mrg           use, intrinsic :: iso_c_binding, only : c_ptr, c_size_t, c_int
    404  1.12  mrg           integer(c_int) :: omp_target_associate_ptr
    405  1.12  mrg           type(c_ptr), value :: host_ptr, device_ptr
    406  1.12  mrg           integer(c_size_t), value :: size, device_offset
    407  1.12  mrg           integer(c_int), value :: device_num
    408  1.12  mrg         end function omp_target_associate_ptr
    409  1.12  mrg       end interface
    410  1.12  mrg 
    411  1.12  mrg       interface
    412  1.12  mrg         function omp_target_disassociate_ptr (ptr, device_num) bind(c)
    413  1.12  mrg           use, intrinsic :: iso_c_binding, only : c_ptr, c_int
    414  1.12  mrg           integer(c_int) :: omp_target_disassociate_ptr
    415  1.12  mrg           type(c_ptr), value :: ptr
    416  1.12  mrg           integer(c_int), value :: device_num
    417  1.12  mrg         end function omp_target_disassociate_ptr
    418  1.12  mrg       end interface
    419