Lines Matching defs:rw
62 static inline void __raw_read_lock(raw_rwlock_t *rw)
64 __raw_spin_lock(&rw->lock);
66 atomic_inc(&rw->counter);
68 __raw_spin_unlock(&rw->lock);
71 static inline void __raw_read_unlock(raw_rwlock_t *rw)
73 __raw_spin_lock(&rw->lock);
75 atomic_dec(&rw->counter);
77 __raw_spin_unlock(&rw->lock);
80 static inline void __raw_write_lock(raw_rwlock_t *rw)
82 __raw_spin_lock(&rw->lock);
83 atomic_set(&rw->counter, -1);
86 static inline void __raw_write_unlock(raw_rwlock_t *rw)
88 atomic_set(&rw->counter, 0);
89 __raw_spin_unlock(&rw->lock);
92 static inline int __raw_write_can_lock(raw_rwlock_t *rw)
94 return (atomic_read(&rw->counter) == RW_LOCK_BIAS);
106 static inline int __raw_write_trylock(raw_rwlock_t *rw)
108 if (atomic_sub_and_test(RW_LOCK_BIAS, &rw->counter))
111 atomic_add(RW_LOCK_BIAS, &rw->counter);