rt_mutex_waiter
struct rt_mutex_waiter;
struct rt_mutex_waiter *pi_blocked_on;
struct rt_mutex_waiter *rt_waiter;
struct rt_mutex_waiter *rt_waiter;
struct rt_mutex_waiter *top_waiter)
struct rt_mutex_waiter rt_waiter;
struct rt_mutex_waiter rt_waiter;
struct rt_mutex_waiter *waiter)
struct rt_mutex_waiter *top_waiter = rt_mutex_top_waiter(lock);
struct rt_mutex_waiter *waiter,
struct rt_mutex_waiter *top_waiter = waiter;
struct rt_mutex_waiter *waiter;
struct rt_mutex_waiter *waiter,
struct rt_mutex_waiter *waiter,
struct rt_mutex_waiter *waiter)
struct rt_mutex_waiter *waiter,
struct rt_mutex_waiter *w)
struct rt_mutex_waiter *waiter,
struct rt_mutex_waiter waiter;
struct rt_mutex_waiter waiter;
static inline int __ww_mutex_add_waiter(struct rt_mutex_waiter *waiter,
waiter_update_prio(struct rt_mutex_waiter *waiter, struct task_struct *task)
waiter_clone_prio(struct rt_mutex_waiter *waiter, struct task_struct *task)
&(struct rt_mutex_waiter){ .tree = *task_to_waiter_node(p) }
static inline bool rt_mutex_steal(struct rt_mutex_waiter *waiter,
struct rt_mutex_waiter *top_waiter)
rb_entry((node), struct rt_mutex_waiter, tree.entry)
struct rt_mutex_waiter *aw = __node_2_waiter(a);
struct rt_mutex_waiter *bw = __node_2_waiter(b);
rt_mutex_enqueue(struct rt_mutex_base *lock, struct rt_mutex_waiter *waiter)
rt_mutex_dequeue(struct rt_mutex_base *lock, struct rt_mutex_waiter *waiter)
rt_mutex_enqueue_pi(struct task_struct *task, struct rt_mutex_waiter *waiter)
rt_mutex_dequeue_pi(struct task_struct *task, struct rt_mutex_waiter *waiter)
struct rt_mutex_waiter *w)
struct rt_mutex_waiter *waiter,
rt_mutex_cond_detect_deadlock(struct rt_mutex_waiter *waiter,
struct rt_mutex_waiter *orig_waiter,
struct rt_mutex_waiter *waiter, *top_waiter = orig_waiter;
struct rt_mutex_waiter *prerequeue_top_waiter;
struct rt_mutex_waiter *waiter,
struct rt_mutex_waiter *waiter,
struct rt_mutex_waiter *waiter)
struct rt_mutex_waiter *waiter)
struct rt_mutex_waiter *waiter;
struct rt_mutex_waiter *waiter)
return rb_entry(leftmost, struct rt_mutex_waiter, tree.entry) == waiter;
static inline struct rt_mutex_waiter *rt_mutex_top_waiter(struct rt_mutex_base *lock)
struct rt_mutex_waiter *w = NULL;
w = rb_entry(leftmost, struct rt_mutex_waiter, tree.entry);
static inline struct rt_mutex_waiter *task_top_pi_waiter(struct task_struct *p)
return rb_entry(p->pi_waiters.rb_leftmost, struct rt_mutex_waiter,
static inline void debug_rt_mutex_init_waiter(struct rt_mutex_waiter *waiter)
static inline void debug_rt_mutex_free_waiter(struct rt_mutex_waiter *waiter)
static inline void rt_mutex_init_waiter(struct rt_mutex_waiter *waiter)
static inline void rt_mutex_init_rtlock_waiter(struct rt_mutex_waiter *waiter)
struct rt_mutex_waiter *waiter,
struct rt_mutex_waiter *waiter,
struct rt_mutex_waiter *waiter);
struct rt_mutex_waiter *waiter);
static inline struct rt_mutex_waiter *
__ww_waiter_next(struct rt_mutex *lock, struct rt_mutex_waiter *w)
return rb_entry(n, struct rt_mutex_waiter, tree.entry);
static inline struct rt_mutex_waiter *
__ww_waiter_prev(struct rt_mutex *lock, struct rt_mutex_waiter *w)
return rb_entry(n, struct rt_mutex_waiter, tree.entry);
static inline struct rt_mutex_waiter *
return rb_entry(n, struct rt_mutex_waiter, tree.entry);
__ww_waiter_add(struct rt_mutex *lock, struct rt_mutex_waiter *waiter, struct rt_mutex_waiter *pos)
#define MUTEX_WAITER rt_mutex_waiter
static inline struct rt_mutex_waiter *
return rb_entry(n, struct rt_mutex_waiter, tree.entry);