Lines Matching defs:devicep

167 gomp_device_copy (struct gomp_device_descr *devicep,
173 if (!copy_func (devicep->target_id, dstaddr, srcaddr, size))
175 gomp_mutex_unlock (&devicep->lock);
182 goacc_device_copy_async (struct gomp_device_descr *devicep,
189 if (!copy_func (devicep->target_id, dstaddr, srcaddr, size, aq))
191 gomp_mutex_unlock (&devicep->lock);
291 gomp_copy_host2dev (struct gomp_device_descr *devicep,
322 goacc_device_copy_async (devicep, devicep->openacc.async.host2dev_func,
325 gomp_device_copy (devicep, devicep->host2dev_func, "dev", d, "host", h, sz);
329 gomp_copy_dev2host (struct gomp_device_descr *devicep,
334 goacc_device_copy_async (devicep, devicep->openacc.async.dev2host_func,
337 gomp_device_copy (devicep, devicep->dev2host_func, "host", h, "dev", d, sz);
341 gomp_free_device_memory (struct gomp_device_descr *devicep, void *devptr)
343 if (!devicep->free_func (devicep->target_id, devptr))
345 gomp_mutex_unlock (&devicep->lock);
355 gomp_map_vars_existing (struct gomp_device_descr *devicep,
373 gomp_mutex_unlock (&devicep->lock);
381 gomp_copy_host2dev (devicep, aq,
403 struct gomp_device_descr *devicep = tgt->device_descr;
404 struct splay_tree_s *mem_map = &devicep->mem_map;
411 gomp_copy_host2dev (devicep, aq,
423 gomp_mutex_unlock (&devicep->lock);
433 gomp_copy_host2dev (devicep, aq, (void *) (tgt->tgt_start + target_offset),
444 struct gomp_device_descr *devicep = tgt->device_descr;
445 struct splay_tree_s *mem_map = &devicep->mem_map;
459 gomp_map_vars_existing (devicep, aq, n2, &cur_node,
475 gomp_map_vars_existing (devicep, aq, n2, &cur_node,
487 gomp_map_vars_existing (devicep, aq, n2, &cur_node, &tgt->list[i],
492 gomp_mutex_unlock (&devicep->lock);
500 gomp_attach_pointer (struct gomp_device_descr *devicep,
510 gomp_mutex_unlock (&devicep->lock);
531 gomp_mutex_unlock (&devicep->lock);
545 gomp_mutex_unlock (&devicep->lock);
555 gomp_mutex_unlock (&devicep->lock);
566 gomp_copy_host2dev (devicep, aq, (void *) devptr, (void *) &data,
575 gomp_detach_pointer (struct gomp_device_descr *devicep,
584 gomp_mutex_unlock (&devicep->lock);
592 gomp_mutex_unlock (&devicep->lock);
601 gomp_mutex_unlock (&devicep->lock);
619 gomp_copy_host2dev (devicep, aq, (void *) devptr, (void *) &target,
656 gomp_map_vars_internal (struct gomp_device_descr *devicep,
666 struct splay_tree_s *mem_map = &devicep->mem_map;
672 tgt->device_descr = devicep;
706 gomp_mutex_lock (&devicep->lock);
707 if (devicep->state == GOMP_DEVICE_FINALIZED)
709 gomp_mutex_unlock (&devicep->lock);
753 gomp_mutex_unlock (&devicep->lock);
851 gomp_map_vars_existing (devicep, aq, n, &cur_node, &tgt->list[i],
905 gomp_mutex_unlock (&devicep->lock);
917 tgt->to_free = devicep->alloc_func (devicep->target_id,
921 gomp_mutex_unlock (&devicep->lock);
977 gomp_copy_host2dev (devicep, aq,
1009 gomp_mutex_unlock (&devicep->lock);
1058 gomp_mutex_unlock (&devicep->lock);
1066 gomp_copy_host2dev (devicep, aq,
1103 gomp_mutex_unlock (&devicep->lock);
1106 gomp_attach_pointer (devicep, aq, mem_map, n,
1122 gomp_map_vars_existing (devicep, aq, n, k, &tgt->list[i],
1178 gomp_copy_host2dev (devicep, aq,
1190 gomp_copy_host2dev (devicep, aq,
1227 gomp_mutex_unlock (&devicep->lock);
1242 gomp_copy_host2dev (devicep, aq,
1249 gomp_mutex_unlock (&devicep->lock);
1261 gomp_copy_host2dev (devicep, aq, (void *) n->tgt_offset,
1274 gomp_copy_host2dev (devicep, aq,
1285 gomp_copy_host2dev (devicep, aq,
1304 gomp_mutex_unlock (&devicep->lock);
1309 gomp_map_vars (struct gomp_device_descr *devicep, size_t mapnum,
1313 return gomp_map_vars_internal (devicep, NULL, mapnum, hostaddrs, devaddrs,
1318 gomp_map_vars_async (struct gomp_device_descr *devicep,
1324 return gomp_map_vars_internal (devicep, aq, mapnum, hostaddrs, devaddrs,
1364 gomp_remove_var_internal (struct gomp_device_descr *devicep, splay_tree_key k,
1368 splay_tree_remove (&devicep->mem_map, k);
1372 splay_tree_insert (&devicep->mem_map,
1380 devicep->openacc.async.queue_callback_func (aq, gomp_unref_tgt_void,
1388 gomp_remove_var (struct gomp_device_descr *devicep, splay_tree_key k)
1390 return gomp_remove_var_internal (devicep, k, NULL);
1400 gomp_remove_var_async (struct gomp_device_descr *devicep, splay_tree_key k,
1403 (void) gomp_remove_var_internal (devicep, k, aq);
1414 struct gomp_device_descr *devicep = tgt->device_descr;
1422 gomp_mutex_lock (&devicep->lock);
1423 if (devicep->state == GOMP_DEVICE_FINALIZED)
1425 gomp_mutex_unlock (&devicep->lock);
1439 gomp_detach_pointer (devicep, aq, k, tgt->list[i].key->host_start
1466 gomp_copy_dev2host (devicep, aq,
1474 bool is_tgt_unmapped = gomp_remove_var (devicep, k);
1484 devicep->openacc.async.queue_callback_func (aq, gomp_unref_tgt_void,
1489 gomp_mutex_unlock (&devicep->lock);
1506 gomp_update (struct gomp_device_descr *devicep, size_t mapnum, void **hostaddrs,
1513 if (!devicep)
1519 gomp_mutex_lock (&devicep->lock);
1520 if (devicep->state == GOMP_DEVICE_FINALIZED)
1522 gomp_mutex_unlock (&devicep->lock);
1531 splay_tree_key n = splay_tree_lookup (&devicep->mem_map, &cur_node);
1538 gomp_mutex_unlock (&devicep->lock);
1554 gomp_copy_host2dev (devicep, NULL, devaddr, hostaddr, size,
1557 gomp_copy_dev2host (devicep, NULL, hostaddr, devaddr, size);
1560 gomp_mutex_unlock (&devicep->lock);
1569 gomp_load_image_to_device (struct gomp_device_descr *devicep, unsigned version,
1588 = devicep->load_image_func (devicep->target_id, version,
1593 gomp_mutex_unlock (&devicep->lock);
1610 tgt->device_descr = devicep;
1625 splay_tree_insert (&devicep->mem_map, array);
1642 gomp_mutex_unlock (&devicep->lock);
1659 splay_tree_insert (&devicep->mem_map, array);
1670 gomp_unload_image_from_device (struct gomp_device_descr *devicep,
1693 node = splay_tree_lookup (&devicep->mem_map, &k);
1696 if (!devicep->unload_image_func (devicep->target_id, version, target_data))
1698 gomp_mutex_unlock (&devicep->lock);
1708 splay_tree_remove (&devicep->mem_map, &k);
1724 splay_tree_remove (&devicep->mem_map, &k);
1727 splay_tree_key n = splay_tree_lookup (&devicep->mem_map, &k);
1728 is_tgt_unmapped = gomp_remove_var (devicep, n);
1758 struct gomp_device_descr *devicep = &devices[i];
1759 gomp_mutex_lock (&devicep->lock);
1760 if (devicep->type == target_type
1761 && devicep->state == GOMP_DEVICE_INITIALIZED)
1762 gomp_load_image_to_device (devicep, version,
1764 gomp_mutex_unlock (&devicep->lock);
1803 struct gomp_device_descr *devicep = &devices[i];
1804 gomp_mutex_lock (&devicep->lock);
1805 if (devicep->type == target_type
1806 && devicep->state == GOMP_DEVICE_INITIALIZED)
1807 gomp_unload_image_from_device (devicep, version,
1809 gomp_mutex_unlock (&devicep->lock);
1834 gomp_init_device (struct gomp_device_descr *devicep)
1837 if (!devicep->init_device_func (devicep->target_id))
1839 gomp_mutex_unlock (&devicep->lock);
1847 if (image->type == devicep->type)
1848 gomp_load_image_to_device (devicep, image->version,
1854 goacc_init_asyncqueues (devicep);
1856 devicep->state = GOMP_DEVICE_INITIALIZED;
1863 gomp_fini_device (struct gomp_device_descr *devicep)
1865 bool ret = goacc_fini_asyncqueues (devicep);
1866 ret &= devicep->fini_device_func (devicep->target_id);
1867 devicep->state = GOMP_DEVICE_FINALIZED;
1872 gomp_unload_device (struct gomp_device_descr *devicep)
1874 if (devicep->state == GOMP_DEVICE_INITIALIZED)
1882 if (image->type == devicep->type)
1883 gomp_unload_image_from_device (devicep, image->version,
1954 gomp_get_target_fn_addr (struct gomp_device_descr *devicep,
1957 if (devicep->capabilities & GOMP_OFFLOAD_CAP_NATIVE_EXEC)
1961 gomp_mutex_lock (&devicep->lock);
1962 if (devicep->state == GOMP_DEVICE_FINALIZED)
1964 gomp_mutex_unlock (&devicep->lock);
1971 splay_tree_key tgt_fn = splay_tree_lookup (&devicep->mem_map, &k);
1972 gomp_mutex_unlock (&devicep->lock);
1995 struct gomp_device_descr *devicep = resolve_device (device);
1998 if (devicep == NULL
1999 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
2001 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM
2002 || !(fn_addr = gomp_get_target_fn_addr (devicep, fn)))
2006 = gomp_map_vars (devicep, mapnum, hostaddrs, NULL, sizes, kinds, false,
2008 devicep->run_func (devicep->target_id, fn_addr, (void *) tgt_vars->tgt_start,
2014 clear_unsupported_flags (struct gomp_device_descr *devicep, unsigned int flags)
2017 if (devicep != NULL && devicep->async_run_func == NULL)
2051 struct gomp_device_descr *devicep = resolve_device (device);
2055 flags = clear_unsupported_flags (devicep, flags);
2101 gomp_create_target_task (devicep, fn, mapnum, hostaddrs,
2132 if (devicep == NULL
2133 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
2134 || !(fn_addr = gomp_get_target_fn_addr (devicep, fn))
2135 || (devicep->can_run_func && !devicep->can_run_func (fn_addr)))
2153 if (devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)
2169 tgt_vars = gomp_map_vars (devicep, mapnum, hostaddrs, NULL, sizes, kinds,
2171 devicep->run_func (devicep->target_id, fn_addr,
2202 struct gomp_device_descr *devicep = resolve_device (device);
2204 if (devicep == NULL
2205 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
2206 || (devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM))
2210 = gomp_map_vars (devicep, mapnum, hostaddrs, NULL, sizes, kinds, false,
2221 struct gomp_device_descr *devicep = resolve_device (device);
2223 if (devicep == NULL
2224 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
2225 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)
2229 = gomp_map_vars (devicep, mapnum, hostaddrs, NULL, sizes, kinds, true,
2252 struct gomp_device_descr *devicep = resolve_device (device);
2254 if (devicep == NULL
2255 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
2256 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)
2259 gomp_update (devicep, mapnum, hostaddrs, sizes, kinds, false);
2267 struct gomp_device_descr *devicep = resolve_device (device);
2284 if (gomp_create_target_task (devicep, (void (*) (void *)) NULL,
2315 if (devicep == NULL
2316 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
2317 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)
2338 gomp_update (devicep, mapnum, hostaddrs, sizes, kinds, true);
2342 gomp_exit_data (struct gomp_device_descr *devicep, size_t mapnum,
2347 gomp_mutex_lock (&devicep->lock);
2348 if (devicep->state == GOMP_DEVICE_FINALIZED)
2350 gomp_mutex_unlock (&devicep->lock);
2370 ? gomp_map_0len_lookup (&devicep->mem_map, &cur_node)
2371 : splay_tree_lookup (&devicep->mem_map, &cur_node);
2384 gomp_copy_dev2host (devicep, NULL, (void *) cur_node.host_start,
2390 gomp_remove_var (devicep, k);
2394 gomp_mutex_unlock (&devicep->lock);
2400 gomp_mutex_unlock (&devicep->lock);
2408 struct gomp_device_descr *devicep = resolve_device (device);
2425 if (gomp_create_target_task (devicep, (void (*) (void *)) NULL,
2456 if (devicep == NULL
2457 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
2458 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)
2486 gomp_map_vars (devicep, sizes[i] + 1, &hostaddrs[i], NULL, &sizes[i],
2495 gomp_map_vars (devicep, j-i, &hostaddrs[i], NULL, &sizes[i],
2500 gomp_map_vars (devicep, 1, &hostaddrs[i], NULL, &sizes[i], &kinds[i],
2503 gomp_exit_data (devicep, mapnum, hostaddrs, sizes, kinds);
2510 struct gomp_device_descr *devicep = ttask->devicep;
2515 if (devicep == NULL
2516 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
2517 || !(fn_addr = gomp_get_target_fn_addr (devicep, ttask->fn))
2518 || (devicep->can_run_func && !devicep->can_run_func (fn_addr)))
2533 if (devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)
2540 ttask->tgt = gomp_map_vars (devicep, ttask->mapnum, ttask->hostaddrs,
2547 assert (devicep->async_run_func);
2548 devicep->async_run_func (devicep->target_id, fn_addr, actual_arguments,
2552 else if (devicep == NULL
2553 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
2554 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)
2559 gomp_update (devicep, ttask->mapnum, ttask->hostaddrs, ttask->sizes,
2565 gomp_map_vars (devicep, ttask->sizes[i] + 1, &ttask->hostaddrs[i],
2571 gomp_map_vars (devicep, 1, &ttask->hostaddrs[i], NULL, &ttask->sizes[i],
2574 gomp_exit_data (devicep, ttask->mapnum, ttask->hostaddrs, ttask->sizes,
2600 struct gomp_device_descr *devicep = resolve_device (device_num);
2601 if (devicep == NULL)
2604 if (!(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
2605 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)
2608 gomp_mutex_lock (&devicep->lock);
2609 void *ret = devicep->alloc_func (devicep->target_id, size);
2610 gomp_mutex_unlock (&devicep->lock);
2629 struct gomp_device_descr *devicep = resolve_device (device_num);
2630 if (devicep == NULL)
2633 if (!(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
2634 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)
2640 gomp_mutex_lock (&devicep->lock);
2641 gomp_free_device_memory (devicep, device_ptr);
2642 gomp_mutex_unlock (&devicep->lock);
2657 struct gomp_device_descr *devicep = resolve_device (device_num);
2658 if (devicep == NULL)
2661 if (!(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
2662 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)
2665 gomp_mutex_lock (&devicep->lock);
2666 struct splay_tree_s *mem_map = &devicep->mem_map;
2673 gomp_mutex_unlock (&devicep->lock);
2891 struct gomp_device_descr *devicep = resolve_device (device_num);
2892 if (devicep == NULL)
2895 if (!(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)
2896 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)
2899 gomp_mutex_lock (&devicep->lock);
2901 struct splay_tree_s *mem_map = &devicep->mem_map;
2926 tgt->device_descr = devicep;
2938 splay_tree_insert (&devicep->mem_map, array);
2941 gomp_mutex_unlock (&devicep->lock);
2954 struct gomp_device_descr *devicep = resolve_device (device_num);
2955 if (devicep == NULL)
2958 if (!(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400))
2961 gomp_mutex_lock (&devicep->lock);
2963 struct splay_tree_s *mem_map = &devicep->mem_map;
2978 splay_tree_remove (&devicep->mem_map, n);
2983 gomp_mutex_unlock (&devicep->lock);
3133 struct gomp_device_descr *devicep = &devices[i];
3134 gomp_mutex_lock (&devicep->lock);
3135 if (devicep->state == GOMP_DEVICE_INITIALIZED)
3136 ret = gomp_fini_device (devicep);
3137 gomp_mutex_unlock (&devicep->lock);