Lines Matching refs:lock

55 static __always_inline int arch_spin_value_unlocked(arch_spinlock_t lock)  in arch_spin_value_unlocked()  argument
57 return lock.slock == 0; in arch_spin_value_unlocked()
60 static inline int arch_spin_is_locked(arch_spinlock_t *lock) in arch_spin_is_locked() argument
63 return !arch_spin_value_unlocked(*lock); in arch_spin_is_locked()
70 static inline unsigned long __arch_spin_trylock(arch_spinlock_t *lock) in __arch_spin_trylock() argument
84 : "r" (token), "r" (&lock->slock) in __arch_spin_trylock()
90 static inline int arch_spin_trylock(arch_spinlock_t *lock) in arch_spin_trylock() argument
93 return __arch_spin_trylock(lock) == 0; in arch_spin_trylock()
113 extern void __spin_yield(arch_spinlock_t *lock);
114 extern void __rw_yield(arch_rwlock_t *lock);
121 static inline void arch_spin_lock(arch_spinlock_t *lock) in arch_spin_lock() argument
125 if (likely(__arch_spin_trylock(lock) == 0)) in arch_spin_lock()
130 __spin_yield(lock); in arch_spin_lock()
131 } while (unlikely(lock->slock != 0)); in arch_spin_lock()
137 void arch_spin_lock_flags(arch_spinlock_t *lock, unsigned long flags) in arch_spin_lock_flags() argument
143 if (likely(__arch_spin_trylock(lock) == 0)) in arch_spin_lock_flags()
150 __spin_yield(lock); in arch_spin_lock_flags()
151 } while (unlikely(lock->slock != 0)); in arch_spin_lock_flags()
157 static inline void arch_spin_unlock(arch_spinlock_t *lock) in arch_spin_unlock() argument
162 lock->slock = 0; in arch_spin_unlock()
166 extern void arch_spin_unlock_wait(arch_spinlock_t *lock);
168 #define arch_spin_unlock_wait(lock) \ argument
169 do { while (arch_spin_is_locked(lock)) cpu_relax(); } while (0)
183 #define arch_read_can_lock(rw) ((rw)->lock >= 0)
184 #define arch_write_can_lock(rw) (!(rw)->lock)
212 : "r" (&rw->lock) in __arch_read_trylock()
236 : "r" (token), "r" (&rw->lock) in __arch_write_trylock()
251 } while (unlikely(rw->lock < 0)); in arch_read_lock()
265 } while (unlikely(rw->lock != 0)); in arch_write_lock()
293 : "r"(&rw->lock) in arch_read_unlock()
301 rw->lock = 0; in arch_write_unlock()
304 #define arch_read_lock_flags(lock, flags) arch_read_lock(lock) argument
305 #define arch_write_lock_flags(lock, flags) arch_write_lock(lock) argument
307 #define arch_spin_relax(lock) __spin_yield(lock) argument
308 #define arch_read_relax(lock) __rw_yield(lock) argument
309 #define arch_write_relax(lock) __rw_yield(lock) argument