Lines Matching full:uaddr

74  * @uaddr:	address of first futex
76 * @val: typically expected value of uaddr, but varies by op
92 #define futex(uaddr, op, val, timeout, uaddr2, val3, opflags) \ argument
93 syscall(SYS_futex, uaddr, op | opflags, val, timeout, uaddr2, val3)
96 * futex_wait() - block on uaddr with optional timeout
100 futex_wait(futex_t *uaddr, futex_t val, struct timespec *timeout, int opflags) in futex_wait() argument
102 return futex(uaddr, FUTEX_WAIT, val, timeout, NULL, 0, opflags); in futex_wait()
106 * futex_wake() - wake one or more tasks blocked on uaddr
110 futex_wake(futex_t *uaddr, int nr_wake, int opflags) in futex_wake() argument
112 return futex(uaddr, FUTEX_WAKE, nr_wake, NULL, NULL, 0, opflags); in futex_wake()
116 * futex_wait_bitset() - block on uaddr with bitset
120 futex_wait_bitset(futex_t *uaddr, futex_t val, struct timespec *timeout, in futex_wait_bitset() argument
123 return futex(uaddr, FUTEX_WAIT_BITSET, val, timeout, NULL, bitset, in futex_wait_bitset()
128 * futex_wake_bitset() - wake one or more tasks blocked on uaddr with bitset
132 futex_wake_bitset(futex_t *uaddr, int nr_wake, u_int32_t bitset, int opflags) in futex_wake_bitset() argument
134 return futex(uaddr, FUTEX_WAKE_BITSET, nr_wake, NULL, NULL, bitset, in futex_wake_bitset()
139 * futex_lock_pi() - block on uaddr as a PI mutex
143 futex_lock_pi(futex_t *uaddr, struct timespec *timeout, int detect, in futex_lock_pi() argument
146 return futex(uaddr, FUTEX_LOCK_PI, detect, timeout, NULL, 0, opflags); in futex_lock_pi()
150 * futex_unlock_pi() - release uaddr as a PI mutex, waking the top waiter
153 futex_unlock_pi(futex_t *uaddr, int opflags) in futex_unlock_pi() argument
155 return futex(uaddr, FUTEX_UNLOCK_PI, 0, NULL, NULL, 0, opflags); in futex_unlock_pi()
162 futex_wake_op(futex_t *uaddr, futex_t *uaddr2, int nr_wake, int nr_wake2, in futex_wake_op() argument
165 return futex(uaddr, FUTEX_WAKE_OP, nr_wake, nr_wake2, uaddr2, wake_op, in futex_wake_op()
178 futex_requeue(futex_t *uaddr, futex_t *uaddr2, int nr_wake, int nr_requeue, in futex_requeue() argument
181 return futex(uaddr, FUTEX_REQUEUE, nr_wake, nr_requeue, uaddr2, 0, in futex_requeue()
186 * futex_cmp_requeue() - requeue tasks from uaddr to uaddr2
191 futex_cmp_requeue(futex_t *uaddr, futex_t val, futex_t *uaddr2, int nr_wake, in futex_cmp_requeue() argument
194 return futex(uaddr, FUTEX_CMP_REQUEUE, nr_wake, nr_requeue, uaddr2, in futex_cmp_requeue()
199 * futex_wait_requeue_pi() - block on uaddr and prepare to requeue to uaddr2
200 * @uaddr: non-PI futex source
207 futex_wait_requeue_pi(futex_t *uaddr, futex_t val, futex_t *uaddr2, in futex_wait_requeue_pi() argument
210 return futex(uaddr, FUTEX_WAIT_REQUEUE_PI, val, timeout, uaddr2, 0, in futex_wait_requeue_pi()
215 * futex_cmp_requeue_pi() - requeue tasks from uaddr to uaddr2 (PI aware)
216 * @uaddr: non-PI futex source
222 futex_cmp_requeue_pi(futex_t *uaddr, futex_t val, futex_t *uaddr2, int nr_wake, in futex_cmp_requeue_pi() argument
225 return futex(uaddr, FUTEX_CMP_REQUEUE_PI, nr_wake, nr_requeue, uaddr2, in futex_cmp_requeue_pi()
231 * @uaddr: The address of the futex to be modified
241 futex_cmpxchg(futex_t *uaddr, u_int32_t oldval, u_int32_t newval) in futex_cmpxchg() argument
243 return __sync_val_compare_and_swap(uaddr, oldval, newval); in futex_cmpxchg()
248 * @uaddr: The address of the futex to be modified
253 futex_dec(futex_t *uaddr) in futex_dec() argument
255 return __sync_sub_and_fetch(uaddr, 1); in futex_dec()
260 * @uaddr: the address of the futex to be modified
265 futex_inc(futex_t *uaddr) in futex_inc() argument
267 return __sync_add_and_fetch(uaddr, 1); in futex_inc()
272 * @uaddr: the address of the futex to be modified
278 futex_set(futex_t *uaddr, u_int32_t newval) in futex_set() argument
280 *uaddr = newval; in futex_set()