• Home
  • Raw
  • Download

Lines Matching refs:syncobj

167    struct sim_syncobj *syncobj = calloc(1, sizeof(*syncobj));  in sim_syncobj_create()  local
168 if (!syncobj) in sim_syncobj_create()
171 mtx_init(&syncobj->mutex, mtx_plain); in sim_syncobj_create()
172 syncobj->pending_fd = -1; in sim_syncobj_create()
202 (const void *)(uintptr_t)syncobj_handle, syncobj); in sim_syncobj_create()
212 struct sim_syncobj *syncobj = NULL; in sim_syncobj_destroy() local
219 syncobj = entry->data; in sim_syncobj_destroy()
226 if (syncobj) { in sim_syncobj_destroy()
227 if (syncobj->pending_fd >= 0) in sim_syncobj_destroy()
228 close(syncobj->pending_fd); in sim_syncobj_destroy()
229 mtx_destroy(&syncobj->mutex); in sim_syncobj_destroy()
230 free(syncobj); in sim_syncobj_destroy()
255 sim_syncobj_set_point_locked(struct sim_syncobj *syncobj, uint64_t point) in sim_syncobj_set_point_locked() argument
257 syncobj->point = point; in sim_syncobj_set_point_locked()
259 if (syncobj->pending_fd >= 0) { in sim_syncobj_set_point_locked()
260 close(syncobj->pending_fd); in sim_syncobj_set_point_locked()
261 syncobj->pending_fd = -1; in sim_syncobj_set_point_locked()
262 syncobj->pending_point = point; in sim_syncobj_set_point_locked()
267 sim_syncobj_update_point_locked(struct sim_syncobj *syncobj, int poll_timeout) in sim_syncobj_update_point_locked() argument
269 if (syncobj->pending_fd >= 0) { in sim_syncobj_update_point_locked()
271 if (syncobj->pending_cpu) { in sim_syncobj_update_point_locked()
275 result = sim_syncobj_poll(syncobj->pending_fd, poll_timeout); in sim_syncobj_update_point_locked()
282 result = sim_syncobj_poll(syncobj->pending_fd, poll_timeout); in sim_syncobj_update_point_locked()
285 result = sim_syncobj_poll(syncobj->pending_fd, poll_timeout); in sim_syncobj_update_point_locked()
288 close(syncobj->pending_fd); in sim_syncobj_update_point_locked()
289 syncobj->pending_fd = -1; in sim_syncobj_update_point_locked()
290 syncobj->point = syncobj->pending_point; in sim_syncobj_update_point_locked()
298 struct sim_syncobj *syncobj = NULL; in sim_syncobj_lookup() local
304 syncobj = entry->data; in sim_syncobj_lookup()
307 return syncobj; in sim_syncobj_lookup()
313 struct sim_syncobj *syncobj = sim_syncobj_lookup(gpu, syncobj_handle); in sim_syncobj_reset() local
314 if (!syncobj) in sim_syncobj_reset()
317 mtx_lock(&syncobj->mutex); in sim_syncobj_reset()
318 sim_syncobj_set_point_locked(syncobj, 0); in sim_syncobj_reset()
319 mtx_unlock(&syncobj->mutex); in sim_syncobj_reset()
329 struct sim_syncobj *syncobj = sim_syncobj_lookup(gpu, syncobj_handle); in sim_syncobj_query() local
330 if (!syncobj) in sim_syncobj_query()
333 mtx_lock(&syncobj->mutex); in sim_syncobj_query()
334 sim_syncobj_update_point_locked(syncobj, 0); in sim_syncobj_query()
335 *point = syncobj->point; in sim_syncobj_query()
336 mtx_unlock(&syncobj->mutex); in sim_syncobj_query()
346 struct sim_syncobj *syncobj = sim_syncobj_lookup(gpu, syncobj_handle); in sim_syncobj_signal() local
347 if (!syncobj) in sim_syncobj_signal()
350 mtx_lock(&syncobj->mutex); in sim_syncobj_signal()
351 sim_syncobj_set_point_locked(syncobj, point); in sim_syncobj_signal()
352 mtx_unlock(&syncobj->mutex); in sim_syncobj_signal()
364 struct sim_syncobj *syncobj = sim_syncobj_lookup(gpu, syncobj_handle); in sim_syncobj_submit() local
365 if (!syncobj) in sim_syncobj_submit()
374 mtx_lock(&syncobj->mutex); in sim_syncobj_submit()
376 if (syncobj->pending_fd >= 0) { in sim_syncobj_submit()
377 mtx_unlock(&syncobj->mutex); in sim_syncobj_submit()
384 if (syncobj->point >= point) in sim_syncobj_submit()
387 syncobj->pending_fd = pending_fd; in sim_syncobj_submit()
388 syncobj->pending_point = point; in sim_syncobj_submit()
389 syncobj->pending_cpu = cpu; in sim_syncobj_submit()
391 mtx_unlock(&syncobj->mutex); in sim_syncobj_submit()
421 struct sim_syncobj *syncobj = in sim_syncobj_wait() local
423 if (!syncobj) in sim_syncobj_wait()
426 mtx_lock(&syncobj->mutex); in sim_syncobj_wait()
428 if (syncobj->point < point) in sim_syncobj_wait()
429 sim_syncobj_update_point_locked(syncobj, poll_timeout); in sim_syncobj_wait()
431 if (syncobj->point < point) { in sim_syncobj_wait()
433 syncobj->pending_fd < 0) { in sim_syncobj_wait()
434 mtx_unlock(&syncobj->mutex); in sim_syncobj_wait()
438 mtx_unlock(&syncobj->mutex); in sim_syncobj_wait()
442 mtx_unlock(&syncobj->mutex); in sim_syncobj_wait()
456 struct sim_syncobj *syncobj = sim_syncobj_lookup(gpu, syncobj_handle); in sim_syncobj_export() local
457 if (!syncobj) in sim_syncobj_export()
461 mtx_lock(&syncobj->mutex); in sim_syncobj_export()
462 if (syncobj->pending_fd >= 0) in sim_syncobj_export()
463 fd = dup(syncobj->pending_fd); in sim_syncobj_export()
466 mtx_unlock(&syncobj->mutex); in sim_syncobj_export()
474 struct sim_syncobj *syncobj = sim_syncobj_lookup(gpu, syncobj_handle); in sim_syncobj_import() local
475 if (!syncobj) in sim_syncobj_import()