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