ops->init = pocl_basic_init;
ops->alloc_mem_obj = pocl_driver_alloc_mem_obj;
- ops->free = pocl_basic_free;
+ ops->free = pocl_driver_free;
ops->read = pocl_driver_read;
ops->read_rect = pocl_driver_read_rect;
return ret;
}
-
-POCL_EXPORT
-void
-pocl_basic_free (cl_device_id device, cl_mem mem)
-{
- cl_device_id svm_dev = mem->context->svm_allocdev;
- if (svm_dev && svm_dev->global_mem_id == 0 && svm_dev->ops->svm_unregister)
- svm_dev->ops->svm_unregister (svm_dev, mem->mem_host_ptr, mem->size);
-
- pocl_mem_identifier *p = &mem->device_ptrs[device->global_mem_id];
- pocl_release_mem_host_ptr (mem);
- p->mem_ptr = NULL;
- p->version = 0;
-}
-
void
pocl_basic_run (void *data, _cl_command_node *cmd)
{
return CL_SUCCESS;
}
+void
+pocl_driver_free (cl_device_id device, cl_mem mem)
+{
+ cl_device_id svm_dev = mem->context->svm_allocdev;
+ if (svm_dev && svm_dev->global_mem_id == 0 && svm_dev->ops->svm_unregister)
+ svm_dev->ops->svm_unregister (svm_dev, mem->mem_host_ptr, mem->size);
+
+ pocl_mem_identifier *p = &mem->device_ptrs[device->global_mem_id];
+ pocl_release_mem_host_ptr (mem);
+ p->mem_ptr = NULL;
+ p->version = 0;
+}
+
/* These are implementations of compilation callbacks for all devices
* that support compilation via LLVM. They take care of compilation/linking
* of source/binary/spir down to parallel.bc level.
cl_int pocl_driver_alloc_mem_obj (cl_device_id device, cl_mem mem,
void *host_ptr);
+POCL_EXPORT
+void pocl_driver_free (cl_device_id device, cl_mem mem);
+
POCL_EXPORT
int pocl_driver_build_source (cl_program program, cl_uint device_i,
cl_uint num_input_headers,
{
/* if we share global memory with CPU, let the CPU driver free it */
if (device->global_mem_id == 0)
- return pocl_basic_free (device, memobj);
+ return pocl_driver_free (device, memobj);
/* ... otherwise free it via HSA. */
cl_mem_flags flags = memobj->flags;
/* these are optional. If the driver needs to do anything to be able
* to use host memory, it should do it (and undo it) in these callbacks.
* Currently used by HSA.
- * See pocl_basic_alloc and pocl_basic_free for details. */
+ * See pocl_driver_alloc_mem_obj and pocl_driver_free for details. */
void (*svm_register) (cl_device_id dev, void *host_ptr, size_t size);
void (*svm_unregister) (cl_device_id dev, void *host_ptr, size_t size);