Lines Matching refs:old
35 static inline void _raw_compare_and_delay(unsigned int *lock, unsigned int old) in _raw_compare_and_delay() argument
37 asm(".insn rsy,0xeb0000000022,%0,0,%1" : : "d" (old), "Q" (*lock)); in _raw_compare_and_delay()
139 unsigned int owner, old; in _raw_read_lock_wait() local
152 old = ACCESS_ONCE(rw->lock); in _raw_read_lock_wait()
154 if ((int) old < 0) { in _raw_read_lock_wait()
156 _raw_compare_and_delay(&rw->lock, old); in _raw_read_lock_wait()
159 if (_raw_compare_and_swap(&rw->lock, old, old + 1)) in _raw_read_lock_wait()
167 unsigned int old; in _raw_read_trylock_retry() local
171 old = ACCESS_ONCE(rw->lock); in _raw_read_trylock_retry()
172 if ((int) old < 0) { in _raw_read_trylock_retry()
174 _raw_compare_and_delay(&rw->lock, old); in _raw_read_trylock_retry()
177 if (_raw_compare_and_swap(&rw->lock, old, old + 1)) in _raw_read_trylock_retry()
188 unsigned int owner, old; in _raw_write_lock_wait() local
198 old = ACCESS_ONCE(rw->lock); in _raw_write_lock_wait()
201 if ((int) old >= 0) { in _raw_write_lock_wait()
203 old = prev; in _raw_write_lock_wait()
205 if ((old & 0x7fffffff) == 0 && (int) prev >= 0) in _raw_write_lock_wait()
208 _raw_compare_and_delay(&rw->lock, old); in _raw_write_lock_wait()
217 unsigned int owner, old, prev; in _raw_write_lock_wait() local
228 old = ACCESS_ONCE(rw->lock); in _raw_write_lock_wait()
230 if ((int) old >= 0 && in _raw_write_lock_wait()
231 _raw_compare_and_swap(&rw->lock, old, old | 0x80000000)) in _raw_write_lock_wait()
232 prev = old; in _raw_write_lock_wait()
235 if ((old & 0x7fffffff) == 0 && (int) prev >= 0) in _raw_write_lock_wait()
238 _raw_compare_and_delay(&rw->lock, old); in _raw_write_lock_wait()
247 unsigned int old; in _raw_write_trylock_retry() local
251 old = ACCESS_ONCE(rw->lock); in _raw_write_trylock_retry()
252 if (old) { in _raw_write_trylock_retry()
254 _raw_compare_and_delay(&rw->lock, old); in _raw_write_trylock_retry()