Lines Matching refs:rw
52 static inline int arch_read_trylock(arch_rwlock_t *rw) in arch_read_trylock() argument
58 arch_spin_lock(&(rw->lock_mutex)); in arch_read_trylock()
64 if (rw->counter > 0) { in arch_read_trylock()
65 rw->counter--; in arch_read_trylock()
69 arch_spin_unlock(&(rw->lock_mutex)); in arch_read_trylock()
76 static inline int arch_write_trylock(arch_rwlock_t *rw) in arch_write_trylock() argument
82 arch_spin_lock(&(rw->lock_mutex)); in arch_write_trylock()
90 if (rw->counter == __ARCH_RW_LOCK_UNLOCKED__) { in arch_write_trylock()
91 rw->counter = 0; in arch_write_trylock()
94 arch_spin_unlock(&(rw->lock_mutex)); in arch_write_trylock()
100 static inline void arch_read_lock(arch_rwlock_t *rw) in arch_read_lock() argument
102 while (!arch_read_trylock(rw)) in arch_read_lock()
106 static inline void arch_write_lock(arch_rwlock_t *rw) in arch_write_lock() argument
108 while (!arch_write_trylock(rw)) in arch_write_lock()
112 static inline void arch_read_unlock(arch_rwlock_t *rw) in arch_read_unlock() argument
117 arch_spin_lock(&(rw->lock_mutex)); in arch_read_unlock()
118 rw->counter++; in arch_read_unlock()
119 arch_spin_unlock(&(rw->lock_mutex)); in arch_read_unlock()
123 static inline void arch_write_unlock(arch_rwlock_t *rw) in arch_write_unlock() argument
128 arch_spin_lock(&(rw->lock_mutex)); in arch_write_unlock()
129 rw->counter = __ARCH_RW_LOCK_UNLOCKED__; in arch_write_unlock()
130 arch_spin_unlock(&(rw->lock_mutex)); in arch_write_unlock()