Lines Matching refs:fence
33 struct fence;
72 struct fence { struct
90 typedef void (*fence_func_t)(struct fence *fence, struct fence_cb *cb); argument
166 const char * (*get_driver_name)(struct fence *fence);
167 const char * (*get_timeline_name)(struct fence *fence);
168 bool (*enable_signaling)(struct fence *fence);
169 bool (*signaled)(struct fence *fence);
170 signed long (*wait)(struct fence *fence, bool intr, signed long timeout);
171 void (*release)(struct fence *fence);
173 int (*fill_driver_data)(struct fence *fence, void *data, int size);
174 void (*fence_value_str)(struct fence *fence, char *str, int size);
175 void (*timeline_value_str)(struct fence *fence, char *str, int size);
178 void fence_init(struct fence *fence, const struct fence_ops *ops,
182 void fence_free(struct fence *fence);
190 static inline struct fence *fence_get(struct fence *fence) in fence_get() argument
192 if (fence) in fence_get()
193 kref_get(&fence->refcount); in fence_get()
194 return fence; in fence_get()
203 static inline struct fence *fence_get_rcu(struct fence *fence) in fence_get_rcu() argument
205 if (kref_get_unless_zero(&fence->refcount)) in fence_get_rcu()
206 return fence; in fence_get_rcu()
215 static inline void fence_put(struct fence *fence) in fence_put() argument
217 if (fence) in fence_put()
218 kref_put(&fence->refcount, fence_release); in fence_put()
221 int fence_signal(struct fence *fence);
222 int fence_signal_locked(struct fence *fence);
223 signed long fence_default_wait(struct fence *fence, bool intr, signed long timeout);
224 int fence_add_callback(struct fence *fence, struct fence_cb *cb,
226 bool fence_remove_callback(struct fence *fence, struct fence_cb *cb);
227 void fence_enable_sw_signaling(struct fence *fence);
241 fence_is_signaled_locked(struct fence *fence) in fence_is_signaled_locked() argument
243 if (test_bit(FENCE_FLAG_SIGNALED_BIT, &fence->flags)) in fence_is_signaled_locked()
246 if (fence->ops->signaled && fence->ops->signaled(fence)) { in fence_is_signaled_locked()
247 fence_signal_locked(fence); in fence_is_signaled_locked()
269 fence_is_signaled(struct fence *fence) in fence_is_signaled() argument
271 if (test_bit(FENCE_FLAG_SIGNALED_BIT, &fence->flags)) in fence_is_signaled()
274 if (fence->ops->signaled && fence->ops->signaled(fence)) { in fence_is_signaled()
275 fence_signal(fence); in fence_is_signaled()
291 static inline struct fence *fence_later(struct fence *f1, struct fence *f2) in fence_later()
307 signed long fence_wait_timeout(struct fence *, bool intr, signed long timeout);
323 static inline signed long fence_wait(struct fence *fence, bool intr) in fence_wait() argument
331 ret = fence_wait_timeout(fence, intr, MAX_SCHEDULE_TIMEOUT); in fence_wait()
340 struct fence *__ff = (f); \
348 struct fence *__ff = (f); \
355 struct fence *__ff = (f); \