Lines Matching full:fence
83 * @kref: reference count on fence.
116 * @fence: sync_fence to which the sync_pt belongs
129 struct sync_fence *fence;
139 * struct sync_fence - sync fence
140 * @file: file representing this fence
141 * @kref: referenace count on fence.
143 * @pt_list_head: list of sync_pts in ths fence. immutable once fence
145 * @waiter_list_head: list of asynchronous waiters on this fence
149 * @wq: wait queue for fence signaling
150 * @sync_fence_list: membership in global fence list
157 /* this list is immutable once the fence is created */
170 typedef void (*sync_callback_t)(struct sync_fence *fence,
174 * struct sync_fence_waiter - metadata for asynchronous waiter on a fence
176 * @callback: function pointer to call when fence signals
243 * not added to a fence.
248 * sync_fence_create() - creates a sync fence
249 * @name: name of fence to create
250 * @pt: sync_pt to add to the fence
252 * Creates a fence containg @pt. Once this is called, the fence takes
263 * @name: name of new fence
264 * @a: fence a
265 * @b: fence b
267 * Creates a new fence which contains copies of all the sync_pts in both
274 * sync_fence_fdget() - get a fence from an fd
275 * @fd: fd referencing a fence
277 * Ensures @fd references a valid fence, increments the refcount of the backing
278 * file, and returns the fence.
283 * sync_fence_put() - puts a refernnce of a sync fence
284 * @fence: fence to put
286 * Puts a reference on @fence. If this is the last reference, the fence and
289 void sync_fence_put(struct sync_fence *fence);
292 * sync_fence_install() - installs a fence into a file descriptor
293 * @fence: fence to instal
294 * @fd: file descriptor in which to install the fence
296 * Installs @fence into @fd. @fd's should be acquired through get_unused_fd().
298 void sync_fence_install(struct sync_fence *fence, int fd);
301 * sync_fence_wait_async() - registers and async wait on the fence
302 * @fence: fence to wait on
305 * Returns 1 if @fence has already signaled.
307 * Registers a callback to be called when @fence signals or has an error.
310 int sync_fence_wait_async(struct sync_fence *fence,
315 * @fence: fence to wait on
318 * returns 0 if waiter was removed from fence's async waiter list.
319 * returns -ENOENT if waiter was not found on fence's async waiter list.
322 * @waiter was never registered or if @fence has already signaled @waiter.
324 int sync_fence_cancel_async(struct sync_fence *fence,
328 * sync_fence_wait() - wait on fence
329 * @fence: fence to wait on
332 * Wait for @fence to be signaled or have an error. Waits indefinitely
335 int sync_fence_wait(struct sync_fence *fence, long timeout);
341 * @fd2: file descriptor of second fence
342 * @name: name of new fence
343 * @fence: returns the fd of the new fence to userspace
346 __s32 fd2; /* fd of second fence */
347 char name[32]; /* name of new fence */
348 __s32 fence; /* fd on newly created fence */
371 * struct sync_fence_info_data - data returned from fence info ioctl
375 * @name: name of fence
376 * @status: status of fence. 1: signaled 0:active <0:error
377 * @pt_info: a sync_pt_info struct for every sync_pt in the fence
390 * DOC: SYNC_IOC_WAIT - wait for a fence to signal
399 * Takes a struct sync_merge_data. Creates a new fence containing copies of
401 * new fence's fd in sync_merge_data.fence
406 * DOC: SYNC_IOC_FENCE_INFO - get detailed information on a fence
413 * pt_info is a buffer containing sync_pt_infos for every sync_pt in the fence.