Lines Matching refs:rw
159 static inline long __arch_read_trylock(arch_rwlock_t *rw)
173 : "r" (&rw->lock), [eh] "n" (eh)
183 static inline long __arch_write_trylock(arch_rwlock_t *rw)
197 : "r" (token), "r" (&rw->lock), [eh] "n" (eh)
203 static inline void arch_read_lock(arch_rwlock_t *rw)
206 if (likely(__arch_read_trylock(rw) > 0))
211 splpar_rw_yield(rw);
212 } while (unlikely(rw->lock < 0));
217 static inline void arch_write_lock(arch_rwlock_t *rw)
220 if (likely(__arch_write_trylock(rw) == 0))
225 splpar_rw_yield(rw);
226 } while (unlikely(rw->lock != 0));
231 static inline int arch_read_trylock(arch_rwlock_t *rw)
233 return __arch_read_trylock(rw) > 0;
236 static inline int arch_write_trylock(arch_rwlock_t *rw)
238 return __arch_write_trylock(rw) == 0;
241 static inline void arch_read_unlock(arch_rwlock_t *rw)
253 : "r"(&rw->lock)
257 static inline void arch_write_unlock(arch_rwlock_t *rw)
261 rw->lock = 0;