Lines Matching refs:lock

53 #define arch_spin_unlock_wait(lock) \  argument
54 do { while (arch_spin_is_locked(lock)) cpu_relax(); } while (0)
56 #define arch_spin_lock_flags(lock, flags) arch_spin_lock(lock) argument
58 static inline void arch_spin_lock(arch_spinlock_t *lock) in arch_spin_lock() argument
64 prefetchw(&lock->slock); in arch_spin_lock()
72 : "r" (&lock->slock), "I" (1 << TICKET_SHIFT) in arch_spin_lock()
77 lockval.tickets.owner = ACCESS_ONCE(lock->tickets.owner); in arch_spin_lock()
83 static inline int arch_spin_trylock(arch_spinlock_t *lock) in arch_spin_trylock() argument
88 prefetchw(&lock->slock); in arch_spin_trylock()
97 : "r" (&lock->slock), "I" (1 << TICKET_SHIFT) in arch_spin_trylock()
109 static inline void arch_spin_unlock(arch_spinlock_t *lock) in arch_spin_unlock() argument
112 lock->tickets.owner++; in arch_spin_unlock()
116 static inline int arch_spin_value_unlocked(arch_spinlock_t lock) in arch_spin_value_unlocked() argument
118 return lock.tickets.owner == lock.tickets.next; in arch_spin_value_unlocked()
121 static inline int arch_spin_is_locked(arch_spinlock_t *lock) in arch_spin_is_locked() argument
123 return !arch_spin_value_unlocked(READ_ONCE(*lock)); in arch_spin_is_locked()
126 static inline int arch_spin_is_contended(arch_spinlock_t *lock) in arch_spin_is_contended() argument
128 struct __raw_tickets tickets = READ_ONCE(lock->tickets); in arch_spin_is_contended()
145 prefetchw(&rw->lock); in arch_write_lock()
154 : "r" (&rw->lock), "r" (0x80000000) in arch_write_lock()
164 prefetchw(&rw->lock); in arch_write_trylock()
172 : "r" (&rw->lock), "r" (0x80000000) in arch_write_trylock()
191 : "r" (&rw->lock), "r" (0) in arch_write_unlock()
198 #define arch_write_can_lock(x) (ACCESS_ONCE((x)->lock) == 0)
216 prefetchw(&rw->lock); in arch_read_lock()
225 : "r" (&rw->lock) in arch_read_lock()
237 prefetchw(&rw->lock); in arch_read_unlock()
245 : "r" (&rw->lock) in arch_read_unlock()
256 prefetchw(&rw->lock); in arch_read_trylock()
264 : "r" (&rw->lock) in arch_read_trylock()
278 #define arch_read_can_lock(x) (ACCESS_ONCE((x)->lock) < 0x80000000)
280 #define arch_read_lock_flags(lock, flags) arch_read_lock(lock) argument
281 #define arch_write_lock_flags(lock, flags) arch_write_lock(lock) argument
283 #define arch_spin_relax(lock) cpu_relax() argument
284 #define arch_read_relax(lock) cpu_relax() argument
285 #define arch_write_relax(lock) cpu_relax() argument