Lines Matching refs:fence
72 util_queue_fence_init(struct util_queue_fence *fence) in util_queue_fence_init() argument
74 fence->val = 0; in util_queue_fence_init()
78 util_queue_fence_destroy(struct util_queue_fence *fence) in util_queue_fence_destroy() argument
80 assert(fence->val == 0); in util_queue_fence_destroy()
85 util_queue_fence_signal(struct util_queue_fence *fence) in util_queue_fence_signal() argument
87 uint32_t val = p_atomic_xchg(&fence->val, 0); in util_queue_fence_signal()
92 futex_wake(&fence->val, INT_MAX); in util_queue_fence_signal()
102 util_queue_fence_reset(struct util_queue_fence *fence) in util_queue_fence_reset() argument
105 fence->val = 1; in util_queue_fence_reset()
107 uint32_t v = p_atomic_xchg(&fence->val, 1); in util_queue_fence_reset()
113 util_queue_fence_is_signalled(struct util_queue_fence *fence) in util_queue_fence_is_signalled() argument
115 return fence->val == 0; in util_queue_fence_is_signalled()
129 void util_queue_fence_init(struct util_queue_fence *fence);
130 void util_queue_fence_destroy(struct util_queue_fence *fence);
131 void util_queue_fence_signal(struct util_queue_fence *fence);
140 util_queue_fence_reset(struct util_queue_fence *fence) in util_queue_fence_reset() argument
142 assert(fence->signalled); in util_queue_fence_reset()
143 fence->signalled = 0; in util_queue_fence_reset()
147 util_queue_fence_is_signalled(struct util_queue_fence *fence) in util_queue_fence_is_signalled() argument
149 return fence->signalled != 0; in util_queue_fence_is_signalled()
154 _util_queue_fence_wait(struct util_queue_fence *fence);
157 util_queue_fence_wait(struct util_queue_fence *fence) in util_queue_fence_wait() argument
159 if (unlikely(!util_queue_fence_is_signalled(fence))) in util_queue_fence_wait()
160 _util_queue_fence_wait(fence); in util_queue_fence_wait()
164 _util_queue_fence_wait_timeout(struct util_queue_fence *fence,
177 util_queue_fence_wait_timeout(struct util_queue_fence *fence, in util_queue_fence_wait_timeout() argument
180 if (util_queue_fence_is_signalled(fence)) in util_queue_fence_wait_timeout()
184 _util_queue_fence_wait(fence); in util_queue_fence_wait_timeout()
188 return _util_queue_fence_wait_timeout(fence, abs_timeout); in util_queue_fence_wait_timeout()
195 struct util_queue_fence *fence; member
230 struct util_queue_fence *fence,
234 struct util_queue_fence *fence);