Lines Matching refs:lock

14 static inline void arch_spin_lock(arch_spinlock_t *lock)
18 u32 *p = &lock->lock;
32 lockval.tickets.owner = READ_ONCE(lock->tickets.owner);
37 static inline int arch_spin_trylock(arch_spinlock_t *lock)
41 u32 *p = &lock->lock;
65 static inline void arch_spin_unlock(arch_spinlock_t *lock)
68 WRITE_ONCE(lock->tickets.owner, lock->tickets.owner + 1);
71 static inline int arch_spin_value_unlocked(arch_spinlock_t lock)
73 return lock.tickets.owner == lock.tickets.next;
76 static inline int arch_spin_is_locked(arch_spinlock_t *lock)
78 return !arch_spin_value_unlocked(READ_ONCE(*lock));
81 static inline int arch_spin_is_contended(arch_spinlock_t *lock)
83 struct __raw_tickets tickets = READ_ONCE(lock->tickets);
99 static inline void arch_spin_lock(arch_spinlock_t *lock)
101 u32 *p = &lock->lock;
116 static inline void arch_spin_unlock(arch_spinlock_t *lock)
119 WRITE_ONCE(lock->lock, 0);
122 static inline int arch_spin_trylock(arch_spinlock_t *lock)
124 u32 *p = &lock->lock;
145 #define arch_spin_is_locked(x) (READ_ONCE((x)->lock) != 0)
148 * read lock/unlock/trylock
150 static inline void arch_read_lock(arch_rwlock_t *lock)
152 u32 *p = &lock->lock;
167 static inline void arch_read_unlock(arch_rwlock_t *lock)
169 u32 *p = &lock->lock;
183 static inline int arch_read_trylock(arch_rwlock_t *lock)
185 u32 *p = &lock->lock;
207 * write lock/unlock/trylock
209 static inline void arch_write_lock(arch_rwlock_t *lock)
211 u32 *p = &lock->lock;
226 static inline void arch_write_unlock(arch_rwlock_t *lock)
229 WRITE_ONCE(lock->lock, 0);
232 static inline int arch_write_trylock(arch_rwlock_t *lock)
234 u32 *p = &lock->lock;