Lines Matching full:rw
79 static inline int arch_read_trylock(arch_rwlock_t *rw) in arch_read_trylock() argument
85 arch_spin_lock(&(rw->lock_mutex)); in arch_read_trylock()
91 if (rw->counter > 0) { in arch_read_trylock()
92 rw->counter--; in arch_read_trylock()
96 arch_spin_unlock(&(rw->lock_mutex)); in arch_read_trylock()
103 static inline int arch_write_trylock(arch_rwlock_t *rw) in arch_write_trylock() argument
109 arch_spin_lock(&(rw->lock_mutex)); in arch_write_trylock()
117 if (rw->counter == __ARCH_RW_LOCK_UNLOCKED__) { in arch_write_trylock()
118 rw->counter = 0; in arch_write_trylock()
121 arch_spin_unlock(&(rw->lock_mutex)); in arch_write_trylock()
127 static inline void arch_read_lock(arch_rwlock_t *rw) in arch_read_lock() argument
129 while (!arch_read_trylock(rw)) in arch_read_lock()
133 static inline void arch_write_lock(arch_rwlock_t *rw) in arch_write_lock() argument
135 while (!arch_write_trylock(rw)) in arch_write_lock()
139 static inline void arch_read_unlock(arch_rwlock_t *rw) in arch_read_unlock() argument
144 arch_spin_lock(&(rw->lock_mutex)); in arch_read_unlock()
145 rw->counter++; in arch_read_unlock()
146 arch_spin_unlock(&(rw->lock_mutex)); in arch_read_unlock()
150 static inline void arch_write_unlock(arch_rwlock_t *rw) in arch_write_unlock() argument
155 arch_spin_lock(&(rw->lock_mutex)); in arch_write_unlock()
156 rw->counter = __ARCH_RW_LOCK_UNLOCKED__; in arch_write_unlock()
157 arch_spin_unlock(&(rw->lock_mutex)); in arch_write_unlock()