Lines Matching defs:lock
15 * Simple spin lock operations. These provide no fairness guarantees.
18 /* FIXME: Replace this with a ticket lock, like MIPS. */
20 #define arch_spin_is_locked(x) (READ_ONCE((x)->lock) != 0)
22 static inline void arch_spin_unlock(arch_spinlock_t *lock)
24 smp_store_release(&lock->lock, 0);
27 static inline int arch_spin_trylock(arch_spinlock_t *lock)
34 : "=r" (busy), "+A" (lock->lock)
41 static inline void arch_spin_lock(arch_spinlock_t *lock)
44 if (arch_spin_is_locked(lock))
47 if (arch_spin_trylock(lock))
54 static inline void arch_read_lock(arch_rwlock_t *lock)
65 : "+A" (lock->lock), "=&r" (tmp)
69 static inline void arch_write_lock(arch_rwlock_t *lock)
80 : "+A" (lock->lock), "=&r" (tmp)
84 static inline int arch_read_trylock(arch_rwlock_t *lock)
96 : "+A" (lock->lock), "=&r" (busy)
102 static inline int arch_write_trylock(arch_rwlock_t *lock)
114 : "+A" (lock->lock), "=&r" (busy)
120 static inline void arch_read_unlock(arch_rwlock_t *lock)
125 : "+A" (lock->lock)
130 static inline void arch_write_unlock(arch_rwlock_t *lock)
132 smp_store_release(&lock->lock, 0);