Lines Matching defs:lock

45  * @lock:		Pointer to the rt_mutex on which the waiter blocks
49 * @tree is ordered by @lock->wait_lock
50 * @pi_tree is ordered by rt_mutex_owner(@lock)->pi_lock
56 struct rt_mutex_base *lock;
64 * @head: The regular wake_q_head for sleeping lock variants
65 * @rtlock_task: Task pointer for RT lock (spin/rwlock) wakeups
81 extern void rt_mutex_init_proxy_locked(struct rt_mutex_base *lock,
83 extern void rt_mutex_proxy_unlock(struct rt_mutex_base *lock);
84 extern int __rt_mutex_start_proxy_lock(struct rt_mutex_base *lock,
88 extern int rt_mutex_start_proxy_lock(struct rt_mutex_base *lock,
91 extern int rt_mutex_wait_proxy_lock(struct rt_mutex_base *lock,
94 extern bool rt_mutex_cleanup_proxy_lock(struct rt_mutex_base *lock,
100 extern void rt_mutex_futex_unlock(struct rt_mutex_base *lock);
101 extern bool __rt_mutex_futex_unlock(struct rt_mutex_base *lock,
111 static inline int rt_mutex_has_waiters(struct rt_mutex_base *lock)
113 return !RB_EMPTY_ROOT(&lock->waiters.rb_root);
118 * @lock. This is solely comparing pointers and not derefencing the
121 static inline bool rt_mutex_waiter_is_top_waiter(struct rt_mutex_base *lock,
124 struct rb_node *leftmost = rb_first_cached(&lock->waiters);
129 static inline struct rt_mutex_waiter *rt_mutex_top_waiter(struct rt_mutex_base *lock)
131 struct rb_node *leftmost = rb_first_cached(&lock->waiters);
134 lockdep_assert_held(&lock->wait_lock);
138 BUG_ON(w->lock != lock);
160 * RT_MUTEX_MIN_CHAINWALK: Stops the lock chain walk when there are
164 * walk of the lock chain.
171 static inline void __rt_mutex_base_init(struct rt_mutex_base *lock)
173 raw_spin_lock_init(&lock->wait_lock);
174 lock->waiters = RB_ROOT_CACHED;
175 lock->owner = NULL;
179 static inline void debug_rt_mutex_unlock(struct rt_mutex_base *lock)
182 DEBUG_LOCKS_WARN_ON(rt_mutex_owner(lock) != current);
185 static inline void debug_rt_mutex_proxy_unlock(struct rt_mutex_base *lock)
188 DEBUG_LOCKS_WARN_ON(!rt_mutex_owner(lock));
220 static inline struct task_struct *rt_mutex_owner(struct rt_mutex_base *lock)