Lines Matching refs:lock
93 extern void __raw_spin_lock_init(raw_spinlock_t *lock, const char *name,
95 # define raw_spin_lock_init(lock) \ argument
99 __raw_spin_lock_init((lock), #lock, &__key); \
103 # define raw_spin_lock_init(lock) \ argument
104 do { *(lock) = __RAW_SPIN_LOCK_UNLOCKED(lock); } while (0)
107 #define raw_spin_is_locked(lock) arch_spin_is_locked(&(lock)->raw_lock) argument
110 #define raw_spin_is_contended(lock) ((lock)->break_lock) argument
114 #define raw_spin_is_contended(lock) arch_spin_is_contended(&(lock)->raw_lock) argument
116 #define raw_spin_is_contended(lock) (((void)(lock), 0)) argument
137 #define raw_spin_unlock_wait(lock) arch_spin_unlock_wait(&(lock)->raw_lock) argument
140 extern void do_raw_spin_lock(raw_spinlock_t *lock) __acquires(lock);
141 #define do_raw_spin_lock_flags(lock, flags) do_raw_spin_lock(lock) argument
142 extern int do_raw_spin_trylock(raw_spinlock_t *lock);
143 extern void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock);
145 static inline void do_raw_spin_lock(raw_spinlock_t *lock) __acquires(lock) in do_raw_spin_lock() argument
147 __acquire(lock); in do_raw_spin_lock()
148 arch_spin_lock(&lock->raw_lock); in do_raw_spin_lock()
152 do_raw_spin_lock_flags(raw_spinlock_t *lock, unsigned long *flags) __acquires(lock) in do_raw_spin_lock_flags() argument
154 __acquire(lock); in do_raw_spin_lock_flags()
155 arch_spin_lock_flags(&lock->raw_lock, *flags); in do_raw_spin_lock_flags()
158 static inline int do_raw_spin_trylock(raw_spinlock_t *lock) in do_raw_spin_trylock() argument
160 return arch_spin_trylock(&(lock)->raw_lock); in do_raw_spin_trylock()
163 static inline void do_raw_spin_unlock(raw_spinlock_t *lock) __releases(lock) in do_raw_spin_unlock() argument
165 arch_spin_unlock(&lock->raw_lock); in do_raw_spin_unlock()
166 __release(lock); in do_raw_spin_unlock()
176 #define raw_spin_trylock(lock) __cond_lock(lock, _raw_spin_trylock(lock)) argument
178 #define raw_spin_lock(lock) _raw_spin_lock(lock) argument
181 # define raw_spin_lock_nested(lock, subclass) \ argument
182 _raw_spin_lock_nested(lock, subclass)
183 # define raw_spin_lock_bh_nested(lock, subclass) \ argument
184 _raw_spin_lock_bh_nested(lock, subclass)
186 # define raw_spin_lock_nest_lock(lock, nest_lock) \ argument
189 _raw_spin_lock_nest_lock(lock, &(nest_lock)->dep_map); \
197 # define raw_spin_lock_nested(lock, subclass) \ argument
198 _raw_spin_lock(((void)(subclass), (lock)))
199 # define raw_spin_lock_nest_lock(lock, nest_lock) _raw_spin_lock(lock) argument
200 # define raw_spin_lock_bh_nested(lock, subclass) _raw_spin_lock_bh(lock) argument
205 #define raw_spin_lock_irqsave(lock, flags) \ argument
208 flags = _raw_spin_lock_irqsave(lock); \
212 #define raw_spin_lock_irqsave_nested(lock, flags, subclass) \ argument
215 flags = _raw_spin_lock_irqsave_nested(lock, subclass); \
218 #define raw_spin_lock_irqsave_nested(lock, flags, subclass) \ argument
221 flags = _raw_spin_lock_irqsave(lock); \
227 #define raw_spin_lock_irqsave(lock, flags) \ argument
230 _raw_spin_lock_irqsave(lock, flags); \
233 #define raw_spin_lock_irqsave_nested(lock, flags, subclass) \ argument
234 raw_spin_lock_irqsave(lock, flags)
238 #define raw_spin_lock_irq(lock) _raw_spin_lock_irq(lock) argument
239 #define raw_spin_lock_bh(lock) _raw_spin_lock_bh(lock) argument
240 #define raw_spin_unlock(lock) _raw_spin_unlock(lock) argument
241 #define raw_spin_unlock_irq(lock) _raw_spin_unlock_irq(lock) argument
243 #define raw_spin_unlock_irqrestore(lock, flags) \ argument
246 _raw_spin_unlock_irqrestore(lock, flags); \
248 #define raw_spin_unlock_bh(lock) _raw_spin_unlock_bh(lock) argument
250 #define raw_spin_trylock_bh(lock) \ argument
251 __cond_lock(lock, _raw_spin_trylock_bh(lock))
253 #define raw_spin_trylock_irq(lock) \ argument
256 raw_spin_trylock(lock) ? \
260 #define raw_spin_trylock_irqsave(lock, flags) \ argument
263 raw_spin_trylock(lock) ? \
271 #define raw_spin_can_lock(lock) (!raw_spin_is_locked(lock)) argument
289 static __always_inline raw_spinlock_t *spinlock_check(spinlock_t *lock) in spinlock_check() argument
291 return &lock->rlock; in spinlock_check()
300 static __always_inline void spin_lock(spinlock_t *lock) in spin_lock() argument
302 raw_spin_lock(&lock->rlock); in spin_lock()
305 static __always_inline void spin_lock_bh(spinlock_t *lock) in spin_lock_bh() argument
307 raw_spin_lock_bh(&lock->rlock); in spin_lock_bh()
310 static __always_inline int spin_trylock(spinlock_t *lock) in spin_trylock() argument
312 return raw_spin_trylock(&lock->rlock); in spin_trylock()
315 #define spin_lock_nested(lock, subclass) \ argument
317 raw_spin_lock_nested(spinlock_check(lock), subclass); \
320 #define spin_lock_bh_nested(lock, subclass) \ argument
322 raw_spin_lock_bh_nested(spinlock_check(lock), subclass);\
325 #define spin_lock_nest_lock(lock, nest_lock) \ argument
327 raw_spin_lock_nest_lock(spinlock_check(lock), nest_lock); \
330 static __always_inline void spin_lock_irq(spinlock_t *lock) in spin_lock_irq() argument
332 raw_spin_lock_irq(&lock->rlock); in spin_lock_irq()
335 #define spin_lock_irqsave(lock, flags) \ argument
337 raw_spin_lock_irqsave(spinlock_check(lock), flags); \
340 #define spin_lock_irqsave_nested(lock, flags, subclass) \ argument
342 raw_spin_lock_irqsave_nested(spinlock_check(lock), flags, subclass); \
345 static __always_inline void spin_unlock(spinlock_t *lock) in spin_unlock() argument
347 raw_spin_unlock(&lock->rlock); in spin_unlock()
350 static __always_inline void spin_unlock_bh(spinlock_t *lock) in spin_unlock_bh() argument
352 raw_spin_unlock_bh(&lock->rlock); in spin_unlock_bh()
355 static __always_inline void spin_unlock_irq(spinlock_t *lock) in spin_unlock_irq() argument
357 raw_spin_unlock_irq(&lock->rlock); in spin_unlock_irq()
360 static __always_inline void spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags) in spin_unlock_irqrestore() argument
362 raw_spin_unlock_irqrestore(&lock->rlock, flags); in spin_unlock_irqrestore()
365 static __always_inline int spin_trylock_bh(spinlock_t *lock) in spin_trylock_bh() argument
367 return raw_spin_trylock_bh(&lock->rlock); in spin_trylock_bh()
370 static __always_inline int spin_trylock_irq(spinlock_t *lock) in spin_trylock_irq() argument
372 return raw_spin_trylock_irq(&lock->rlock); in spin_trylock_irq()
375 #define spin_trylock_irqsave(lock, flags) \ argument
377 raw_spin_trylock_irqsave(spinlock_check(lock), flags); \
380 static __always_inline void spin_unlock_wait(spinlock_t *lock) in spin_unlock_wait() argument
382 raw_spin_unlock_wait(&lock->rlock); in spin_unlock_wait()
385 static __always_inline int spin_is_locked(spinlock_t *lock) in spin_is_locked() argument
387 return raw_spin_is_locked(&lock->rlock); in spin_is_locked()
390 static __always_inline int spin_is_contended(spinlock_t *lock) in spin_is_contended() argument
392 return raw_spin_is_contended(&lock->rlock); in spin_is_contended()
395 static __always_inline int spin_can_lock(spinlock_t *lock) in spin_can_lock() argument
397 return raw_spin_can_lock(&lock->rlock); in spin_can_lock()
400 #define assert_spin_locked(lock) assert_raw_spin_locked(&(lock)->rlock) argument
415 extern int _atomic_dec_and_lock(atomic_t *atomic, spinlock_t *lock);
416 #define atomic_dec_and_lock(atomic, lock) \ argument
417 __cond_lock(lock, _atomic_dec_and_lock(atomic, lock))