Lines Matching refs:rw

80 static inline void arch_read_lock(arch_rwlock_t *rw)  in arch_read_lock()  argument
104 : [rwlock] "r" (&(rw->counter)), in arch_read_lock()
112 static inline int arch_read_trylock(arch_rwlock_t *rw) in arch_read_trylock() argument
130 : [rwlock] "r" (&(rw->counter)), in arch_read_trylock()
139 static inline void arch_write_lock(arch_rwlock_t *rw) in arch_write_lock() argument
165 : [rwlock] "r" (&(rw->counter)), in arch_write_lock()
174 static inline int arch_write_trylock(arch_rwlock_t *rw) in arch_write_trylock() argument
192 : [rwlock] "r" (&(rw->counter)), in arch_write_trylock()
202 static inline void arch_read_unlock(arch_rwlock_t *rw) in arch_read_unlock() argument
218 : [rwlock] "r" (&(rw->counter)) in arch_read_unlock()
224 static inline void arch_write_unlock(arch_rwlock_t *rw) in arch_write_unlock() argument
228 rw->counter = __ARCH_RW_LOCK_UNLOCKED__; in arch_write_unlock()
327 static inline int arch_read_trylock(arch_rwlock_t *rw) in arch_read_trylock() argument
333 arch_spin_lock(&(rw->lock_mutex)); in arch_read_trylock()
339 if (rw->counter > 0) { in arch_read_trylock()
340 rw->counter--; in arch_read_trylock()
344 arch_spin_unlock(&(rw->lock_mutex)); in arch_read_trylock()
352 static inline int arch_write_trylock(arch_rwlock_t *rw) in arch_write_trylock() argument
358 arch_spin_lock(&(rw->lock_mutex)); in arch_write_trylock()
366 if (rw->counter == __ARCH_RW_LOCK_UNLOCKED__) { in arch_write_trylock()
367 rw->counter = 0; in arch_write_trylock()
370 arch_spin_unlock(&(rw->lock_mutex)); in arch_write_trylock()
376 static inline void arch_read_lock(arch_rwlock_t *rw) in arch_read_lock() argument
378 while (!arch_read_trylock(rw)) in arch_read_lock()
382 static inline void arch_write_lock(arch_rwlock_t *rw) in arch_write_lock() argument
384 while (!arch_write_trylock(rw)) in arch_write_lock()
388 static inline void arch_read_unlock(arch_rwlock_t *rw) in arch_read_unlock() argument
393 arch_spin_lock(&(rw->lock_mutex)); in arch_read_unlock()
394 rw->counter++; in arch_read_unlock()
395 arch_spin_unlock(&(rw->lock_mutex)); in arch_read_unlock()
399 static inline void arch_write_unlock(arch_rwlock_t *rw) in arch_write_unlock() argument
404 arch_spin_lock(&(rw->lock_mutex)); in arch_write_unlock()
405 rw->counter = __ARCH_RW_LOCK_UNLOCKED__; in arch_write_unlock()
406 arch_spin_unlock(&(rw->lock_mutex)); in arch_write_unlock()