Lines Matching refs:rw
178 static inline long __arch_read_trylock(arch_rwlock_t *rw)
191 : "r" (&rw->lock)
201 static inline long __arch_write_trylock(arch_rwlock_t *rw)
214 : "r" (token), "r" (&rw->lock)
220 static inline void arch_read_lock(arch_rwlock_t *rw)
223 if (likely(__arch_read_trylock(rw) > 0))
228 splpar_rw_yield(rw);
229 } while (unlikely(rw->lock < 0));
234 static inline void arch_write_lock(arch_rwlock_t *rw)
237 if (likely(__arch_write_trylock(rw) == 0))
242 splpar_rw_yield(rw);
243 } while (unlikely(rw->lock != 0));
248 static inline int arch_read_trylock(arch_rwlock_t *rw)
250 return __arch_read_trylock(rw) > 0;
253 static inline int arch_write_trylock(arch_rwlock_t *rw)
255 return __arch_write_trylock(rw) == 0;
258 static inline void arch_read_unlock(arch_rwlock_t *rw)
270 : "r"(&rw->lock)
274 static inline void arch_write_unlock(arch_rwlock_t *rw)
278 rw->lock = 0;