Lines Matching refs:rw
107 static inline int arch_read_trylock(arch_rwlock_t *rw) in arch_read_trylock() argument
111 arch_spin_lock(&(rw->lock_mutex)); in arch_read_trylock()
117 if (rw->counter > 0) { in arch_read_trylock()
118 rw->counter--; in arch_read_trylock()
122 arch_spin_unlock(&(rw->lock_mutex)); in arch_read_trylock()
129 static inline int arch_write_trylock(arch_rwlock_t *rw) in arch_write_trylock() argument
133 arch_spin_lock(&(rw->lock_mutex)); in arch_write_trylock()
141 if (rw->counter == __ARCH_RW_LOCK_UNLOCKED__) { in arch_write_trylock()
142 rw->counter = 0; in arch_write_trylock()
145 arch_spin_unlock(&(rw->lock_mutex)); in arch_write_trylock()
150 static inline void arch_read_lock(arch_rwlock_t *rw) in arch_read_lock() argument
152 while (!arch_read_trylock(rw)) in arch_read_lock()
156 static inline void arch_write_lock(arch_rwlock_t *rw) in arch_write_lock() argument
158 while (!arch_write_trylock(rw)) in arch_write_lock()
162 static inline void arch_read_unlock(arch_rwlock_t *rw) in arch_read_unlock() argument
164 arch_spin_lock(&(rw->lock_mutex)); in arch_read_unlock()
165 rw->counter++; in arch_read_unlock()
166 arch_spin_unlock(&(rw->lock_mutex)); in arch_read_unlock()
169 static inline void arch_write_unlock(arch_rwlock_t *rw) in arch_write_unlock() argument
171 arch_spin_lock(&(rw->lock_mutex)); in arch_write_unlock()
172 rw->counter = __ARCH_RW_LOCK_UNLOCKED__; in arch_write_unlock()
173 arch_spin_unlock(&(rw->lock_mutex)); in arch_write_unlock()