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