futex_q
static void io_futex_wakev_fn(struct wake_q_head *wake_q, struct futex_q *q)
static void io_futex_wake_fn(struct wake_q_head *wake_q, struct futex_q *q)
struct futex_q q;
struct futex_q *this, *tmp;
struct futex_q *futex_top_waiter(struct futex_hash_bucket *hb, union futex_key *key)
struct futex_q *this;
void __futex_unqueue(struct futex_q *q)
void futex_q_lock(struct futex_q *q, struct futex_hash_bucket *hb)
void __futex_queue(struct futex_q *q, struct futex_hash_bucket *hb,
int futex_unqueue(struct futex_q *q)
void futex_q_lockptr_lock(struct futex_q *q)
void futex_unqueue_pi(struct futex_q *q)
struct futex_q;
typedef void (futex_wake_fn)(struct wake_q_head *wake_q, struct futex_q *q);
extern const struct futex_q futex_q_init;
extern void futex_q_lockptr_lock(struct futex_q *q);
struct futex_q *q, union futex_key *key2,
extern void futex_do_wait(struct futex_q *q, struct hrtimer_sleeper *timeout);
extern bool __futex_wake_mark(struct futex_q *q);
extern void futex_wake_mark(struct wake_q_head *wake_q, struct futex_q *q);
extern struct futex_q *futex_top_waiter(struct futex_hash_bucket *hb, union futex_key *key);
extern void __futex_unqueue(struct futex_q *q);
extern void __futex_queue(struct futex_q *q, struct futex_hash_bucket *hb,
extern int futex_unqueue(struct futex_q *q);
static inline void futex_queue(struct futex_q *q, struct futex_hash_bucket *hb,
extern void futex_unqueue_pi(struct futex_q *q);
extern void futex_q_lock(struct futex_q *q, struct futex_hash_bucket *hb);
extern int fixup_pi_owner(u32 __user *uaddr, struct futex_q *q, int locked);
struct futex_q q;
struct futex_q *top_waiter;
struct futex_q *top_waiter;
static int __fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q,
static int fixup_pi_state_owner(u32 __user *uaddr, struct futex_q *q,
int fixup_pi_owner(u32 __user *uaddr, struct futex_q *q, int locked)
struct futex_q q = futex_q_init;
static inline void futex_requeue_pi_complete(struct futex_q *q, int locked)
static inline int futex_requeue_pi_wakeup_sync(struct futex_q *q)
void requeue_pi_wake_futex(struct futex_q *q, union futex_key *key,
struct futex_q *top_waiter;
struct futex_q *this, *next;
const struct futex_q futex_q_init = {
struct futex_q *q,
void requeue_futex(struct futex_q *q, struct futex_hash_bucket *hb1,
struct futex_q q = futex_q_init;
static inline bool futex_requeue_pi_prepare(struct futex_q *q,
bool __futex_wake_mark(struct futex_q *q)
void futex_wake_mark(struct wake_q_head *wake_q, struct futex_q *q)
struct futex_q *this, *next;
struct futex_q *this, *next;
void futex_do_wait(struct futex_q *q, struct hrtimer_sleeper *timeout)
struct futex_q *q = &vs[i].q;
struct futex_q *q, union futex_key *key2,
struct futex_q q = futex_q_init;