Lines Matching refs:lock
22 #define arch_spin_lock_init(x) ((x)->lock = 0)
43 static __always_inline void __ticket_spin_lock(arch_spinlock_t *lock) in __ticket_spin_lock() argument
45 int *p = (int *)&lock->lock, ticket, serve; in __ticket_spin_lock()
63 static __always_inline int __ticket_spin_trylock(arch_spinlock_t *lock) in __ticket_spin_trylock() argument
65 int tmp = READ_ONCE(lock->lock); in __ticket_spin_trylock()
68 return ia64_cmpxchg(acq, &lock->lock, tmp, tmp + 1, sizeof (tmp)) == tmp; in __ticket_spin_trylock()
72 static __always_inline void __ticket_spin_unlock(arch_spinlock_t *lock) in __ticket_spin_unlock() argument
74 unsigned short *p = (unsigned short *)&lock->lock + 1, tmp; in __ticket_spin_unlock()
80 static inline int __ticket_spin_is_locked(arch_spinlock_t *lock) in __ticket_spin_is_locked() argument
82 long tmp = READ_ONCE(lock->lock); in __ticket_spin_is_locked()
87 static inline int __ticket_spin_is_contended(arch_spinlock_t *lock) in __ticket_spin_is_contended() argument
89 long tmp = READ_ONCE(lock->lock); in __ticket_spin_is_contended()
94 static __always_inline int arch_spin_value_unlocked(arch_spinlock_t lock) in arch_spin_value_unlocked() argument
96 return !(((lock.lock >> TICKET_SHIFT) ^ lock.lock) & TICKET_MASK); in arch_spin_value_unlocked()
99 static inline int arch_spin_is_locked(arch_spinlock_t *lock) in arch_spin_is_locked() argument
101 return __ticket_spin_is_locked(lock); in arch_spin_is_locked()
104 static inline int arch_spin_is_contended(arch_spinlock_t *lock) in arch_spin_is_contended() argument
106 return __ticket_spin_is_contended(lock); in arch_spin_is_contended()
110 static __always_inline void arch_spin_lock(arch_spinlock_t *lock) in arch_spin_lock() argument
112 __ticket_spin_lock(lock); in arch_spin_lock()
115 static __always_inline int arch_spin_trylock(arch_spinlock_t *lock) in arch_spin_trylock() argument
117 return __ticket_spin_trylock(lock); in arch_spin_trylock()
120 static __always_inline void arch_spin_unlock(arch_spinlock_t *lock) in arch_spin_unlock() argument
122 __ticket_spin_unlock(lock); in arch_spin_unlock()
125 static __always_inline void arch_spin_lock_flags(arch_spinlock_t *lock, in arch_spin_lock_flags() argument
128 arch_spin_lock(lock); in arch_spin_lock_flags()
135 arch_read_lock_flags(arch_rwlock_t *lock, unsigned long flags) in arch_read_lock_flags() argument
154 : : "r"(lock), "r"(flags), "i"(IA64_PSR_I_BIT) in arch_read_lock_flags()
159 #define arch_read_lock(lock) arch_read_lock_flags(lock, 0) argument
187 arch_write_lock_flags(arch_rwlock_t *lock, unsigned long flags) in arch_write_lock_flags() argument
207 : : "r"(lock), "r"(flags), "i"(IA64_PSR_I_BIT) in arch_write_lock_flags()
265 arch_rwlock_t lock; in arch_read_trylock() member
268 old.lock = new.lock = *x; in arch_read_trylock()
269 old.lock.write_lock = new.lock.write_lock = 0; in arch_read_trylock()
270 ++new.lock.read_counter; in arch_read_trylock()