Lines Matching refs:devicep
166 gomp_device_copy (struct gomp_device_descr *devicep, in gomp_device_copy() argument
172 if (!copy_func (devicep->target_id, dstaddr, srcaddr, size)) in gomp_device_copy()
174 gomp_mutex_unlock (&devicep->lock); in gomp_device_copy()
267 gomp_copy_host2dev (struct gomp_device_descr *devicep, in gomp_copy_host2dev() argument
296 gomp_device_copy (devicep, devicep->host2dev_func, "dev", d, "host", h, sz); in gomp_copy_host2dev()
300 gomp_copy_dev2host (struct gomp_device_descr *devicep, in gomp_copy_dev2host() argument
303 gomp_device_copy (devicep, devicep->dev2host_func, "host", h, "dev", d, sz); in gomp_copy_dev2host()
307 gomp_free_device_memory (struct gomp_device_descr *devicep, void *devptr) in gomp_free_device_memory() argument
309 if (!devicep->free_func (devicep->target_id, devptr)) in gomp_free_device_memory()
311 gomp_mutex_unlock (&devicep->lock); in gomp_free_device_memory()
321 gomp_map_vars_existing (struct gomp_device_descr *devicep, splay_tree_key oldn, in gomp_map_vars_existing() argument
335 gomp_mutex_unlock (&devicep->lock); in gomp_map_vars_existing()
343 gomp_copy_host2dev (devicep, in gomp_map_vars_existing()
365 struct gomp_device_descr *devicep = tgt->device_descr; in gomp_map_pointer() local
366 struct splay_tree_s *mem_map = &devicep->mem_map; in gomp_map_pointer()
373 gomp_copy_host2dev (devicep, in gomp_map_pointer()
385 gomp_mutex_unlock (&devicep->lock); in gomp_map_pointer()
395 gomp_copy_host2dev (devicep, (void *) (tgt->tgt_start + target_offset), in gomp_map_pointer()
405 struct gomp_device_descr *devicep = tgt->device_descr; in gomp_map_fields_existing() local
406 struct splay_tree_s *mem_map = &devicep->mem_map; in gomp_map_fields_existing()
420 gomp_map_vars_existing (devicep, n2, &cur_node, in gomp_map_fields_existing()
436 gomp_map_vars_existing (devicep, n2, &cur_node, &tgt->list[i], in gomp_map_fields_existing()
448 gomp_map_vars_existing (devicep, n2, &cur_node, &tgt->list[i], in gomp_map_fields_existing()
453 gomp_mutex_unlock (&devicep->lock); in gomp_map_fields_existing()
481 gomp_map_vars (struct gomp_device_descr *devicep, size_t mapnum, in gomp_map_vars() argument
489 struct splay_tree_s *mem_map = &devicep->mem_map; in gomp_map_vars()
495 tgt->device_descr = devicep; in gomp_map_vars()
528 gomp_mutex_lock (&devicep->lock); in gomp_map_vars()
529 if (devicep->state == GOMP_DEVICE_FINALIZED) in gomp_map_vars()
531 gomp_mutex_unlock (&devicep->lock); in gomp_map_vars()
553 gomp_mutex_unlock (&devicep->lock); in gomp_map_vars()
642 gomp_map_vars_existing (devicep, n, &cur_node, &tgt->list[i], in gomp_map_vars()
681 gomp_mutex_unlock (&devicep->lock); in gomp_map_vars()
693 tgt->to_free = devicep->alloc_func (devicep->target_id, in gomp_map_vars()
697 gomp_mutex_unlock (&devicep->lock); in gomp_map_vars()
753 gomp_copy_host2dev (devicep, in gomp_map_vars()
799 gomp_mutex_unlock (&devicep->lock); in gomp_map_vars()
807 gomp_copy_host2dev (devicep, in gomp_map_vars()
828 gomp_map_vars_existing (devicep, n, k, &tgt->list[i], in gomp_map_vars()
880 gomp_copy_host2dev (devicep, in gomp_map_vars()
891 gomp_copy_host2dev (devicep, in gomp_map_vars()
927 gomp_mutex_unlock (&devicep->lock); in gomp_map_vars()
942 gomp_copy_host2dev (devicep, in gomp_map_vars()
949 gomp_mutex_unlock (&devicep->lock); in gomp_map_vars()
959 devicep->host2dev_func (devicep->target_id, in gomp_map_vars()
973 gomp_copy_host2dev (devicep, in gomp_map_vars()
984 gomp_copy_host2dev (devicep, (void *) (tgt->tgt_start + cbuf.chunks[2 * c]), in gomp_map_vars()
999 gomp_mutex_unlock (&devicep->lock); in gomp_map_vars()
1021 struct gomp_device_descr *devicep = tgt->device_descr; in gomp_unmap_vars() local
1029 gomp_mutex_lock (&devicep->lock); in gomp_unmap_vars()
1030 if (devicep->state == GOMP_DEVICE_FINALIZED) in gomp_unmap_vars()
1032 gomp_mutex_unlock (&devicep->lock); in gomp_unmap_vars()
1056 gomp_copy_dev2host (devicep, in gomp_unmap_vars()
1063 splay_tree_remove (&devicep->mem_map, k); in gomp_unmap_vars()
1065 splay_tree_insert (&devicep->mem_map, in gomp_unmap_vars()
1079 gomp_mutex_unlock (&devicep->lock); in gomp_unmap_vars()
1083 gomp_update (struct gomp_device_descr *devicep, size_t mapnum, void **hostaddrs, in gomp_update() argument
1090 if (!devicep) in gomp_update()
1096 gomp_mutex_lock (&devicep->lock); in gomp_update()
1097 if (devicep->state == GOMP_DEVICE_FINALIZED) in gomp_update()
1099 gomp_mutex_unlock (&devicep->lock); in gomp_update()
1108 splay_tree_key n = splay_tree_lookup (&devicep->mem_map, &cur_node); in gomp_update()
1115 gomp_mutex_unlock (&devicep->lock); in gomp_update()
1131 gomp_copy_host2dev (devicep, devaddr, hostaddr, size, NULL); in gomp_update()
1133 gomp_copy_dev2host (devicep, hostaddr, devaddr, size); in gomp_update()
1136 gomp_mutex_unlock (&devicep->lock); in gomp_update()
1145 gomp_load_image_to_device (struct gomp_device_descr *devicep, unsigned version, in gomp_load_image_to_device() argument
1164 = devicep->load_image_func (devicep->target_id, version, in gomp_load_image_to_device()
1169 gomp_mutex_unlock (&devicep->lock); in gomp_load_image_to_device()
1186 tgt->device_descr = devicep; in gomp_load_image_to_device()
1200 splay_tree_insert (&devicep->mem_map, array); in gomp_load_image_to_device()
1216 gomp_mutex_unlock (&devicep->lock); in gomp_load_image_to_device()
1232 splay_tree_insert (&devicep->mem_map, array); in gomp_load_image_to_device()
1243 gomp_unload_image_from_device (struct gomp_device_descr *devicep, in gomp_unload_image_from_device() argument
1266 node = splay_tree_lookup (&devicep->mem_map, &k); in gomp_unload_image_from_device()
1269 if (!devicep->unload_image_func (devicep->target_id, version, target_data)) in gomp_unload_image_from_device()
1271 gomp_mutex_unlock (&devicep->lock); in gomp_unload_image_from_device()
1281 splay_tree_remove (&devicep->mem_map, &k); in gomp_unload_image_from_device()
1297 splay_tree_remove (&devicep->mem_map, &k); in gomp_unload_image_from_device()
1300 splay_tree_key n = splay_tree_lookup (&devicep->mem_map, &k); in gomp_unload_image_from_device()
1301 splay_tree_remove (&devicep->mem_map, n); in gomp_unload_image_from_device()
1341 struct gomp_device_descr *devicep = &devices[i]; in GOMP_offload_register_ver() local
1342 gomp_mutex_lock (&devicep->lock); in GOMP_offload_register_ver()
1343 if (devicep->type == target_type in GOMP_offload_register_ver()
1344 && devicep->state == GOMP_DEVICE_INITIALIZED) in GOMP_offload_register_ver()
1345 gomp_load_image_to_device (devicep, version, in GOMP_offload_register_ver()
1347 gomp_mutex_unlock (&devicep->lock); in GOMP_offload_register_ver()
1386 struct gomp_device_descr *devicep = &devices[i]; in GOMP_offload_unregister_ver() local
1387 gomp_mutex_lock (&devicep->lock); in GOMP_offload_unregister_ver()
1388 if (devicep->type == target_type in GOMP_offload_unregister_ver()
1389 && devicep->state == GOMP_DEVICE_INITIALIZED) in GOMP_offload_unregister_ver()
1390 gomp_unload_image_from_device (devicep, version, in GOMP_offload_unregister_ver()
1392 gomp_mutex_unlock (&devicep->lock); in GOMP_offload_unregister_ver()
1417 gomp_init_device (struct gomp_device_descr *devicep) in gomp_init_device() argument
1420 if (!devicep->init_device_func (devicep->target_id)) in gomp_init_device()
1422 gomp_mutex_unlock (&devicep->lock); in gomp_init_device()
1430 if (image->type == devicep->type) in gomp_init_device()
1431 gomp_load_image_to_device (devicep, image->version, in gomp_init_device()
1436 devicep->state = GOMP_DEVICE_INITIALIZED; in gomp_init_device()
1440 gomp_unload_device (struct gomp_device_descr *devicep) in gomp_unload_device() argument
1442 if (devicep->state == GOMP_DEVICE_INITIALIZED) in gomp_unload_device()
1450 if (image->type == devicep->type) in gomp_unload_device()
1451 gomp_unload_image_from_device (devicep, image->version, in gomp_unload_device()
1538 gomp_get_target_fn_addr (struct gomp_device_descr *devicep, in gomp_get_target_fn_addr() argument
1541 if (devicep->capabilities & GOMP_OFFLOAD_CAP_NATIVE_EXEC) in gomp_get_target_fn_addr()
1545 gomp_mutex_lock (&devicep->lock); in gomp_get_target_fn_addr()
1546 if (devicep->state == GOMP_DEVICE_FINALIZED) in gomp_get_target_fn_addr()
1548 gomp_mutex_unlock (&devicep->lock); in gomp_get_target_fn_addr()
1555 splay_tree_key tgt_fn = splay_tree_lookup (&devicep->mem_map, &k); in gomp_get_target_fn_addr()
1556 gomp_mutex_unlock (&devicep->lock); in gomp_get_target_fn_addr()
1579 struct gomp_device_descr *devicep = resolve_device (device); in GOMP_target() local
1582 if (devicep == NULL in GOMP_target()
1583 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400) in GOMP_target()
1585 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM in GOMP_target()
1586 || !(fn_addr = gomp_get_target_fn_addr (devicep, fn))) in GOMP_target()
1590 = gomp_map_vars (devicep, mapnum, hostaddrs, NULL, sizes, kinds, false, in GOMP_target()
1592 devicep->run_func (devicep->target_id, fn_addr, (void *) tgt_vars->tgt_start, in GOMP_target()
1625 struct gomp_device_descr *devicep = resolve_device (device); in GOMP_target_ext() local
1664 gomp_create_target_task (devicep, fn, mapnum, hostaddrs, in GOMP_target_ext()
1695 if (devicep == NULL in GOMP_target_ext()
1696 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400) in GOMP_target_ext()
1697 || !(fn_addr = gomp_get_target_fn_addr (devicep, fn)) in GOMP_target_ext()
1698 || (devicep->can_run_func && !devicep->can_run_func (fn_addr))) in GOMP_target_ext()
1716 if (devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM) in GOMP_target_ext()
1732 tgt_vars = gomp_map_vars (devicep, mapnum, hostaddrs, NULL, sizes, kinds, in GOMP_target_ext()
1734 devicep->run_func (devicep->target_id, fn_addr, in GOMP_target_ext()
1765 struct gomp_device_descr *devicep = resolve_device (device); in GOMP_target_data() local
1767 if (devicep == NULL in GOMP_target_data()
1768 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400) in GOMP_target_data()
1769 || (devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM)) in GOMP_target_data()
1773 = gomp_map_vars (devicep, mapnum, hostaddrs, NULL, sizes, kinds, false, in GOMP_target_data()
1784 struct gomp_device_descr *devicep = resolve_device (device); in GOMP_target_data_ext() local
1786 if (devicep == NULL in GOMP_target_data_ext()
1787 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400) in GOMP_target_data_ext()
1788 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM) in GOMP_target_data_ext()
1792 = gomp_map_vars (devicep, mapnum, hostaddrs, NULL, sizes, kinds, true, in GOMP_target_data_ext()
1815 struct gomp_device_descr *devicep = resolve_device (device); in GOMP_target_update() local
1817 if (devicep == NULL in GOMP_target_update()
1818 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400) in GOMP_target_update()
1819 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM) in GOMP_target_update()
1822 gomp_update (devicep, mapnum, hostaddrs, sizes, kinds, false); in GOMP_target_update()
1830 struct gomp_device_descr *devicep = resolve_device (device); in GOMP_target_update_ext() local
1847 if (gomp_create_target_task (devicep, (void (*) (void *)) NULL, in GOMP_target_update_ext()
1869 if (devicep == NULL in GOMP_target_update_ext()
1870 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400) in GOMP_target_update_ext()
1871 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM) in GOMP_target_update_ext()
1882 gomp_update (devicep, mapnum, hostaddrs, sizes, kinds, true); in GOMP_target_update_ext()
1886 gomp_exit_data (struct gomp_device_descr *devicep, size_t mapnum, in gomp_exit_data() argument
1891 gomp_mutex_lock (&devicep->lock); in gomp_exit_data()
1892 if (devicep->state == GOMP_DEVICE_FINALIZED) in gomp_exit_data()
1894 gomp_mutex_unlock (&devicep->lock); in gomp_exit_data()
1914 ? gomp_map_0len_lookup (&devicep->mem_map, &cur_node) in gomp_exit_data()
1915 : splay_tree_lookup (&devicep->mem_map, &cur_node); in gomp_exit_data()
1928 gomp_copy_dev2host (devicep, (void *) cur_node.host_start, in gomp_exit_data()
1935 splay_tree_remove (&devicep->mem_map, k); in gomp_exit_data()
1937 splay_tree_insert (&devicep->mem_map, in gomp_exit_data()
1947 gomp_mutex_unlock (&devicep->lock); in gomp_exit_data()
1953 gomp_mutex_unlock (&devicep->lock); in gomp_exit_data()
1961 struct gomp_device_descr *devicep = resolve_device (device); in GOMP_target_enter_exit_data() local
1978 if (gomp_create_target_task (devicep, (void (*) (void *)) NULL, in GOMP_target_enter_exit_data()
2000 if (devicep == NULL in GOMP_target_enter_exit_data()
2001 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400) in GOMP_target_enter_exit_data()
2002 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM) in GOMP_target_enter_exit_data()
2018 gomp_map_vars (devicep, sizes[i] + 1, &hostaddrs[i], NULL, &sizes[i], in GOMP_target_enter_exit_data()
2023 gomp_map_vars (devicep, 1, &hostaddrs[i], NULL, &sizes[i], &kinds[i], in GOMP_target_enter_exit_data()
2026 gomp_exit_data (devicep, mapnum, hostaddrs, sizes, kinds); in GOMP_target_enter_exit_data()
2033 struct gomp_device_descr *devicep = ttask->devicep; in gomp_target_task_fn() local
2038 if (devicep == NULL in gomp_target_task_fn()
2039 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400) in gomp_target_task_fn()
2040 || !(fn_addr = gomp_get_target_fn_addr (devicep, ttask->fn)) in gomp_target_task_fn()
2041 || (devicep->can_run_func && !devicep->can_run_func (fn_addr))) in gomp_target_task_fn()
2056 if (devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM) in gomp_target_task_fn()
2063 ttask->tgt = gomp_map_vars (devicep, ttask->mapnum, ttask->hostaddrs, in gomp_target_task_fn()
2070 devicep->async_run_func (devicep->target_id, fn_addr, actual_arguments, in gomp_target_task_fn()
2074 else if (devicep == NULL in gomp_target_task_fn()
2075 || !(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400) in gomp_target_task_fn()
2076 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM) in gomp_target_task_fn()
2081 gomp_update (devicep, ttask->mapnum, ttask->hostaddrs, ttask->sizes, in gomp_target_task_fn()
2087 gomp_map_vars (devicep, ttask->sizes[i] + 1, &ttask->hostaddrs[i], in gomp_target_task_fn()
2093 gomp_map_vars (devicep, 1, &ttask->hostaddrs[i], NULL, &ttask->sizes[i], in gomp_target_task_fn()
2096 gomp_exit_data (devicep, ttask->mapnum, ttask->hostaddrs, ttask->sizes, in gomp_target_task_fn()
2122 struct gomp_device_descr *devicep = resolve_device (device_num); in omp_target_alloc() local
2123 if (devicep == NULL) in omp_target_alloc()
2126 if (!(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400) in omp_target_alloc()
2127 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM) in omp_target_alloc()
2130 gomp_mutex_lock (&devicep->lock); in omp_target_alloc()
2131 void *ret = devicep->alloc_func (devicep->target_id, size); in omp_target_alloc()
2132 gomp_mutex_unlock (&devicep->lock); in omp_target_alloc()
2151 struct gomp_device_descr *devicep = resolve_device (device_num); in omp_target_free() local
2152 if (devicep == NULL) in omp_target_free()
2155 if (!(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400) in omp_target_free()
2156 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM) in omp_target_free()
2162 gomp_mutex_lock (&devicep->lock); in omp_target_free()
2163 gomp_free_device_memory (devicep, device_ptr); in omp_target_free()
2164 gomp_mutex_unlock (&devicep->lock); in omp_target_free()
2179 struct gomp_device_descr *devicep = resolve_device (device_num); in omp_target_is_present() local
2180 if (devicep == NULL) in omp_target_is_present()
2183 if (!(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400) in omp_target_is_present()
2184 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM) in omp_target_is_present()
2187 gomp_mutex_lock (&devicep->lock); in omp_target_is_present()
2188 struct splay_tree_s *mem_map = &devicep->mem_map; in omp_target_is_present()
2195 gomp_mutex_unlock (&devicep->lock); in omp_target_is_present()
2408 struct gomp_device_descr *devicep = resolve_device (device_num); in omp_target_associate_ptr() local
2409 if (devicep == NULL) in omp_target_associate_ptr()
2412 if (!(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400) in omp_target_associate_ptr()
2413 || devicep->capabilities & GOMP_OFFLOAD_CAP_SHARED_MEM) in omp_target_associate_ptr()
2416 gomp_mutex_lock (&devicep->lock); in omp_target_associate_ptr()
2418 struct splay_tree_s *mem_map = &devicep->mem_map; in omp_target_associate_ptr()
2443 tgt->device_descr = devicep; in omp_target_associate_ptr()
2453 splay_tree_insert (&devicep->mem_map, array); in omp_target_associate_ptr()
2456 gomp_mutex_unlock (&devicep->lock); in omp_target_associate_ptr()
2469 struct gomp_device_descr *devicep = resolve_device (device_num); in omp_target_disassociate_ptr() local
2470 if (devicep == NULL) in omp_target_disassociate_ptr()
2473 if (!(devicep->capabilities & GOMP_OFFLOAD_CAP_OPENMP_400)) in omp_target_disassociate_ptr()
2476 gomp_mutex_lock (&devicep->lock); in omp_target_disassociate_ptr()
2478 struct splay_tree_s *mem_map = &devicep->mem_map; in omp_target_disassociate_ptr()
2493 splay_tree_remove (&devicep->mem_map, n); in omp_target_disassociate_ptr()
2498 gomp_mutex_unlock (&devicep->lock); in omp_target_disassociate_ptr()
2622 struct gomp_device_descr *devicep = &devices[i]; in gomp_target_fini() local
2623 gomp_mutex_lock (&devicep->lock); in gomp_target_fini()
2624 if (devicep->state == GOMP_DEVICE_INITIALIZED) in gomp_target_fini()
2626 ret = devicep->fini_device_func (devicep->target_id); in gomp_target_fini()
2627 devicep->state = GOMP_DEVICE_FINALIZED; in gomp_target_fini()
2629 gomp_mutex_unlock (&devicep->lock); in gomp_target_fini()