Lines Matching refs:lock

56 static inline void arch_spin_lock(arch_spinlock_t *lock)  in arch_spin_lock()  argument
62 prefetchw(&lock->slock); in arch_spin_lock()
70 : "r" (&lock->slock), "I" (1 << TICKET_SHIFT) in arch_spin_lock()
75 lockval.tickets.owner = READ_ONCE(lock->tickets.owner); in arch_spin_lock()
81 static inline int arch_spin_trylock(arch_spinlock_t *lock) in arch_spin_trylock() argument
86 prefetchw(&lock->slock); in arch_spin_trylock()
95 : "r" (&lock->slock), "I" (1 << TICKET_SHIFT) in arch_spin_trylock()
107 static inline void arch_spin_unlock(arch_spinlock_t *lock) in arch_spin_unlock() argument
110 lock->tickets.owner++; in arch_spin_unlock()
114 static inline int arch_spin_value_unlocked(arch_spinlock_t lock) in arch_spin_value_unlocked() argument
116 return lock.tickets.owner == lock.tickets.next; in arch_spin_value_unlocked()
119 static inline int arch_spin_is_locked(arch_spinlock_t *lock) in arch_spin_is_locked() argument
121 return !arch_spin_value_unlocked(READ_ONCE(*lock)); in arch_spin_is_locked()
124 static inline int arch_spin_is_contended(arch_spinlock_t *lock) in arch_spin_is_contended() argument
126 struct __raw_tickets tickets = READ_ONCE(lock->tickets); in arch_spin_is_contended()
143 prefetchw(&rw->lock); in arch_write_lock()
152 : "r" (&rw->lock), "r" (0x80000000) in arch_write_lock()
162 prefetchw(&rw->lock); in arch_write_trylock()
170 : "r" (&rw->lock), "r" (0x80000000) in arch_write_trylock()
189 : "r" (&rw->lock), "r" (0) in arch_write_unlock()
211 prefetchw(&rw->lock); in arch_read_lock()
221 : "r" (&rw->lock) in arch_read_lock()
233 prefetchw(&rw->lock); in arch_read_unlock()
241 : "r" (&rw->lock) in arch_read_unlock()
252 prefetchw(&rw->lock); in arch_read_trylock()
260 : "r" (&rw->lock) in arch_read_trylock()