Lines Matching full:vs
400 * @vs: The futex list to wait on
414 int futex_wait_multiple_setup(struct futex_vector *vs, int count, int *woken) in futex_wait_multiple_setup() argument
437 if (!(vs[i].w.flags & FLAGS_SHARED) && retry) in futex_wait_multiple_setup()
440 ret = get_futex_key(u64_to_user_ptr(vs[i].w.uaddr), in futex_wait_multiple_setup()
441 vs[i].w.flags, in futex_wait_multiple_setup()
442 &vs[i].q.key, FUTEX_READ); in futex_wait_multiple_setup()
451 u32 __user *uaddr = (u32 __user *)(unsigned long)vs[i].w.uaddr; in futex_wait_multiple_setup()
452 struct futex_q *q = &vs[i].q; in futex_wait_multiple_setup()
453 u32 val = vs[i].w.val; in futex_wait_multiple_setup()
476 *woken = futex_unqueue_multiple(vs, i); in futex_wait_multiple_setup()
504 * @vs: List of futexes to wait for
505 * @count: Length of vs
511 static void futex_sleep_multiple(struct futex_vector *vs, unsigned int count, in futex_sleep_multiple() argument
517 for (; count; count--, vs++) { in futex_sleep_multiple()
518 if (!READ_ONCE(vs->q.lock_ptr)) in futex_sleep_multiple()
527 * @vs: The list of futexes to wait on
539 int futex_wait_multiple(struct futex_vector *vs, unsigned int count, in futex_wait_multiple() argument
548 ret = futex_wait_multiple_setup(vs, count, &hint); in futex_wait_multiple()
557 futex_sleep_multiple(vs, count, to); in futex_wait_multiple()
561 ret = futex_unqueue_multiple(vs, count); in futex_wait_multiple()