Lines Matching refs:lock

71 bool try_acquire_spinlock(spinlock* lock);
183 try_acquire_spinlock_inline(spinlock* lock)
185 return atomic_get_and_set(&lock->lock, 1) == 0;
190 acquire_spinlock_inline(spinlock* lock)
192 if (try_acquire_spinlock_inline(lock))
194 acquire_spinlock(lock);
199 release_spinlock_inline(spinlock* lock)
201 atomic_set(&lock->lock, 0);
205 #define try_acquire_spinlock(lock) try_acquire_spinlock_inline(lock)
206 #define acquire_spinlock(lock) acquire_spinlock_inline(lock)
207 #define release_spinlock(lock) release_spinlock_inline(lock)
211 try_acquire_write_spinlock_inline(rw_spinlock* lock)
213 return atomic_test_and_set(&lock->lock, 1u << 31, 0) == 0;
218 acquire_write_spinlock_inline(rw_spinlock* lock)
220 if (try_acquire_write_spinlock(lock))
222 acquire_write_spinlock(lock);
227 release_write_spinlock_inline(rw_spinlock* lock)
229 atomic_set(&lock->lock, 0);
234 try_acquire_read_spinlock_inline(rw_spinlock* lock)
236 uint32 previous = atomic_add(&lock->lock, 1);
242 acquire_read_spinlock_inline(rw_spinlock* lock)
244 if (try_acquire_read_spinlock(lock))
246 acquire_read_spinlock(lock);
251 release_read_spinlock_inline(rw_spinlock* lock)
253 atomic_add(&lock->lock, -1);
257 #define try_acquire_read_spinlock(lock) try_acquire_read_spinlock_inline(lock)
258 #define acquire_read_spinlock(lock) acquire_read_spinlock_inline(lock)
259 #define release_read_spinlock(lock) release_read_spinlock_inline(lock)
260 #define try_acquire_write_spinlock(lock) \
261 try_acquire_write_spinlock(lock)
262 #define acquire_write_spinlock(lock) acquire_write_spinlock_inline(lock)
263 #define release_write_spinlock(lock) release_write_spinlock_inline(lock)
267 try_acquire_write_seqlock_inline(seqlock* lock) {
268 bool succeed = try_acquire_spinlock(&lock->lock);
270 atomic_add((int32*)&lock->count, 1);
276 acquire_write_seqlock_inline(seqlock* lock) {
277 acquire_spinlock(&lock->lock);
278 atomic_add((int32*)&lock->count, 1);
283 release_write_seqlock_inline(seqlock* lock) {
284 atomic_add((int32*)&lock->count, 1);
285 release_spinlock(&lock->lock);
290 acquire_read_seqlock_inline(seqlock* lock)
292 return (uint32)atomic_get((int32*)&lock->count);
297 release_read_seqlock_inline(seqlock* lock, uint32 count)
299 uint32 current = (uint32)atomic_get((int32*)&lock->count);
305 #define try_acquire_write_seqlock(lock) try_acquire_write_seqlock_inline(lock)
306 #define acquire_write_seqlock(lock) acquire_write_seqlock_inline(lock)
307 #define release_write_seqlock(lock) release_write_seqlock_inline(lock)
308 #define acquire_read_seqlock(lock) acquire_read_seqlock_inline(lock)
309 #define release_read_seqlock(lock, count) \
310 release_read_seqlock_inline(lock, count)