(1) cl_int clEnqueueWriteBuffer(cl_command_queue[⋯], cl_event * event) |
(2) // Check if device tracing enabled? |
(3) const bool trace = |
__tracepoint_clust_provider__ |
_clust_device_event.state; |
(4) bool toDelete = event == NULL; |
(5) if(caa_unlikely(trace)) |
(6) if(toDelete) // Dynamic eventallocation |
(7) event = malloc(sizeof(cl_event)); |
(8) |
(9) |
(10) |
(11) tracepoint(clust_provider, |
cl_clEnqueueWriteBuffer_start, […relevant |
arguments to record…]); |
(12) cl_int ret = reallib_clEnqueueWriteBuffer(command_queue, buffer, blocking_write, |
offset, cb, ptr, num_events_in_wait_list, event_wait_list, event); |
(13) tracepoint(clust_provider, cl_clEnqueueWriteBuffer_end); |
(14) |
(15) if(caa_unlikely(trace)) |
(16) int r = reallib_clSetEventCallback(* |
event, CL_COMPLETE, &eventCompleted, (toDelete)?&ev_delete:&ev_keep); |
(17) if(r != CL_SUCCESS) […errormanagement…] |
(18) |
(19) |
(20) return ret; |
(21) |