Lines Matching refs:lock
19 #define arch_spin_lock_init(x) ((x)->lock = 0)
40 static __always_inline void __ticket_spin_lock(arch_spinlock_t *lock) in __ticket_spin_lock() argument
42 int *p = (int *)&lock->lock, ticket, serve; in __ticket_spin_lock()
60 static __always_inline int __ticket_spin_trylock(arch_spinlock_t *lock) in __ticket_spin_trylock() argument
62 int tmp = ACCESS_ONCE(lock->lock); in __ticket_spin_trylock()
65 return ia64_cmpxchg(acq, &lock->lock, tmp, tmp + 1, sizeof (tmp)) == tmp; in __ticket_spin_trylock()
69 static __always_inline void __ticket_spin_unlock(arch_spinlock_t *lock) in __ticket_spin_unlock() argument
71 unsigned short *p = (unsigned short *)&lock->lock + 1, tmp; in __ticket_spin_unlock()
77 static __always_inline void __ticket_spin_unlock_wait(arch_spinlock_t *lock) in __ticket_spin_unlock_wait() argument
79 int *p = (int *)&lock->lock, ticket; in __ticket_spin_unlock_wait()
91 static inline int __ticket_spin_is_locked(arch_spinlock_t *lock) in __ticket_spin_is_locked() argument
93 long tmp = ACCESS_ONCE(lock->lock); in __ticket_spin_is_locked()
98 static inline int __ticket_spin_is_contended(arch_spinlock_t *lock) in __ticket_spin_is_contended() argument
100 long tmp = ACCESS_ONCE(lock->lock); in __ticket_spin_is_contended()
105 static __always_inline int arch_spin_value_unlocked(arch_spinlock_t lock) in arch_spin_value_unlocked() argument
107 return !(((lock.lock >> TICKET_SHIFT) ^ lock.lock) & TICKET_MASK); in arch_spin_value_unlocked()
110 static inline int arch_spin_is_locked(arch_spinlock_t *lock) in arch_spin_is_locked() argument
112 return __ticket_spin_is_locked(lock); in arch_spin_is_locked()
115 static inline int arch_spin_is_contended(arch_spinlock_t *lock) in arch_spin_is_contended() argument
117 return __ticket_spin_is_contended(lock); in arch_spin_is_contended()
121 static __always_inline void arch_spin_lock(arch_spinlock_t *lock) in arch_spin_lock() argument
123 __ticket_spin_lock(lock); in arch_spin_lock()
126 static __always_inline int arch_spin_trylock(arch_spinlock_t *lock) in arch_spin_trylock() argument
128 return __ticket_spin_trylock(lock); in arch_spin_trylock()
131 static __always_inline void arch_spin_unlock(arch_spinlock_t *lock) in arch_spin_unlock() argument
133 __ticket_spin_unlock(lock); in arch_spin_unlock()
136 static __always_inline void arch_spin_lock_flags(arch_spinlock_t *lock, in arch_spin_lock_flags() argument
139 arch_spin_lock(lock); in arch_spin_lock_flags()
142 static inline void arch_spin_unlock_wait(arch_spinlock_t *lock) in arch_spin_unlock_wait() argument
144 __ticket_spin_unlock_wait(lock); in arch_spin_unlock_wait()
153 arch_read_lock_flags(arch_rwlock_t *lock, unsigned long flags) in arch_read_lock_flags() argument
172 : : "r"(lock), "r"(flags), "i"(IA64_PSR_I_BIT) in arch_read_lock_flags()
176 #define arch_read_lock(lock) arch_read_lock_flags(lock, 0) argument
204 arch_write_lock_flags(arch_rwlock_t *lock, unsigned long flags) in arch_write_lock_flags() argument
224 : : "r"(lock), "r"(flags), "i"(IA64_PSR_I_BIT) in arch_write_lock_flags()
283 arch_rwlock_t lock; in arch_read_trylock() member
286 old.lock = new.lock = *x; in arch_read_trylock()
287 old.lock.write_lock = new.lock.write_lock = 0; in arch_read_trylock()
288 ++new.lock.read_counter; in arch_read_trylock()
292 #define arch_spin_relax(lock) cpu_relax() argument
293 #define arch_read_relax(lock) cpu_relax() argument
294 #define arch_write_relax(lock) cpu_relax() argument