Home | History | Annotate | Download | only in kern

Lines Matching defs:uaddr

287  * futex_load(uaddr, kaddr)
289 * Perform a single atomic load to read *uaddr, and return the
290 * result in *kaddr. Return 0 on success, EFAULT if uaddr is not
294 futex_load(int *uaddr, int *kaddr)
296 return ufetch_int((u_int *)uaddr, (u_int *)kaddr);
300 * futex_test(uaddr, expected)
302 * True if *uaddr == expected. False if *uaddr != expected, or if
303 * uaddr is not mapped.
306 futex_test(int *uaddr, int expected)
311 error = futex_load(uaddr, &val);
661 * futex_lookup(uaddr, shared, &f)
663 * Find a futex at the userland pointer uaddr in the current
670 futex_lookup(int *uaddr, bool shared, struct futex **fp)
674 vaddr_t va = (vaddr_t)uaddr;
708 * futex_lookup_create(uaddr, shared, &f)
710 * Find or create a futex at the userland pointer uaddr in the
717 futex_lookup_create(int *uaddr, bool shared, struct futex **fp)
722 vaddr_t va = (vaddr_t)uaddr;
1203 * futex_func_wait(uaddr, cmpval@val, bitset@val3, timeout, clkid, clkflags,
1207 * *uaddr == cmpval, wait until futex-woken on any of the bits in
1208 * bitset. But if *uaddr != cmpval, fail with EAGAIN.
1213 futex_func_wait(bool shared, int *uaddr, int cmpval, int bitset,
1231 if (!futex_test(uaddr, cmpval))
1246 error = futex_lookup_create(uaddr, shared, &f);
1262 if (!futex_test(uaddr, cmpval)) {
1295 * futex_func_wake(uaddr, nwake@val, bitset@val3, retval)
1298 * up to nwake waiters on uaddr waiting on any of the bits in
1306 futex_func_wake(bool shared, int *uaddr, int nwake, int bitset,
1320 error = futex_lookup(uaddr, shared, &f);
1348 * futex_func_requeue(op, uaddr, nwake@val, uaddr2, nrequeue@val2,
1352 * *uaddr == cmpval or if op == FUTEX_REQUEUE, wake up to nwake
1353 * waiters at uaddr and then requeue up to nrequeue waiters from
1354 * uaddr to uaddr2.
1358 * For FUTEX_CMP_REQUEUE, if *uaddr != cmpval, fail with EAGAIN
1362 futex_func_requeue(bool shared, int op, int *uaddr, int nwake, int *uaddr2,
1382 ? futex_lookup_create(uaddr, shared, &f)
1383 : futex_lookup(uaddr, shared, &f));
1407 if (op == FUTEX_CMP_REQUEUE && !futex_test(uaddr, cmpval)) {
1571 * futex_func_wake_op(uaddr, nwake@val, uaddr2, nwake2@val2, opcmp@val3,
1579 * 2. If uaddr is nonnull, wake up to nwake waiters at uaddr.
1586 futex_func_wake_op(bool shared, int *uaddr, int nwake, int *uaddr2, int nwake2,
1605 error = futex_lookup(uaddr, shared, &f);
1618 * 2. Unconditionally wake uaddr.
1661 * do_futex(uaddr, op, val, timeout, uaddr2, val2, val3)
1667 do_futex(int *uaddr, int op, int val, const struct timespec *timeout,
1681 return futex_func_wait(shared, uaddr, cmpval, bitset, timeout,
1688 return futex_func_wake(shared, uaddr, nwake, bitset, retval);
1694 return futex_func_wake(shared, uaddr, nwake, bitset, retval);
1702 return futex_func_requeue(shared, op, uaddr, nwake, uaddr2,
1709 return futex_func_wait(shared, uaddr, cmpval, bitset, timeout,
1717 return futex_func_wake_op(shared, uaddr, nwake, uaddr2, nwake2,
1736 syscallarg(int *) uaddr;
1759 return do_futex(SCARG(uap, uaddr), SCARG(uap, op), SCARG(uap, val),
1831 int *uaddr;
1839 uaddr = (int *)uptr;
1841 error = futex_load(uaddr, &oldval);
1865 (void) futex_func_wake(/*shared*/true, uaddr, 1,
1890 error = futex_load(uaddr, &oldval);
1896 error = ucas_int(uaddr, oldval, newval, &actual);
1913 error = futex_lookup(uaddr, /*shared*/true, &f);
1932 error = futex_load(uaddr, &oldval);
1938 error = ucas_int(uaddr, oldval, newval, &actual);
1986 * futex_fetch_robust_head(uaddr)
1992 futex_fetch_robust_head(uintptr_t uaddr, u_long *rhead)
1999 error = copyin((void *)uaddr, rhead32, sizeof(rhead32));
2017 return copyin((void *)uaddr, rhead,
2036 * futex_fetch_robust_entry(uaddr)
2042 futex_fetch_robust_entry(uintptr_t const uaddr
2052 error = ufetch_32((uint32_t *)uaddr, &val32);
2057 error = ufetch_long((u_long *)uaddr, (u_long *)&val);