Lines Matching refs:cnts
49 u32 cnts; in queued_read_trylock() local
51 cnts = atomic_read(&lock->cnts); in queued_read_trylock()
52 if (likely(!(cnts & _QW_WMASK))) { in queued_read_trylock()
53 cnts = (u32)atomic_add_return_acquire(_QR_BIAS, &lock->cnts); in queued_read_trylock()
54 if (likely(!(cnts & _QW_WMASK))) in queued_read_trylock()
56 atomic_sub(_QR_BIAS, &lock->cnts); in queued_read_trylock()
68 u32 cnts; in queued_write_trylock() local
70 cnts = atomic_read(&lock->cnts); in queued_write_trylock()
71 if (unlikely(cnts)) in queued_write_trylock()
74 return likely(atomic_cmpxchg_acquire(&lock->cnts, in queued_write_trylock()
75 cnts, cnts | _QW_LOCKED) == cnts); in queued_write_trylock()
83 u32 cnts; in queued_read_lock() local
85 cnts = atomic_add_return_acquire(_QR_BIAS, &lock->cnts); in queued_read_lock()
86 if (likely(!(cnts & _QW_WMASK))) in queued_read_lock()
100 if (atomic_cmpxchg_acquire(&lock->cnts, 0, _QW_LOCKED) == 0) in queued_write_lock()
115 (void)atomic_sub_return_release(_QR_BIAS, &lock->cnts); in queued_read_unlock()