Home | History | Annotate | Download | only in tests-m32

Lines Matching full:uaddr

59 void futex_error(int *uaddr, int op, unsigned long val, unsigned long timeout,
63 func, line, uaddr, op, (unsigned) val, timeout, uaddr,
67 # define CHECK_FUTEX_GENERIC(uaddr, op, val, timeout, uaddr2, val3, check, \
71 rc = syscall(__NR_futex, (uaddr), (op), (val), (timeout), \
79 futex_error((uaddr), (op), (val), \
84 # define CHECK_FUTEX_ENOSYS(uaddr, op, val, timeout, uaddr2, val3, check) \
85 CHECK_FUTEX_GENERIC(uaddr, op, val, timeout, uaddr2, val3, check, 1)
87 # define CHECK_FUTEX(uaddr, op, val, timeout, uaddr2, val3, check) \
88 CHECK_FUTEX_GENERIC(uaddr, op, val, timeout, uaddr2, val3, check, 0)
149 invalid_op(uaddr, FUTEX_CLOCK_REALTIME | (op), __VA_ARGS__); \
150 invalid_op(uaddr, FUTEX_CLOCK_REALTIME | FUTEX_PRIVATE_FLAG | \
173 TAIL_ALLOC_OBJECT_CONST_PTR(int, uaddr);
179 uaddr[0] = 0x1deadead;
186 /* FUTEX_WAIT - check whether uaddr == val and sleep
188 * 1. uaddr - futex address
196 /* uaddr is NULL */
203 /* uaddr is faulty */
204 CHECK_FUTEX(uaddr + 1, FUTEX_WAIT, VAL, tmout, uaddr2, VAL3,
207 uaddr + 1, VAL_PR, (long long) tmout->tv_sec,
211 CHECK_FUTEX(uaddr, FUTEX_WAIT, VAL, tmout + 1, uaddr2, VAL3,
214 uaddr, 0xfacefeed, tmout + 1, sprintrc(rc));
220 CHECK_FUTEX(uaddr, FUTEX_WAIT, VAL, tmout, uaddr2, VAL3,
223 uaddr, VAL_PR, (long long) tmout->tv_sec,
229 CHECK_FUTEX(uaddr, FUTEX_WAIT, VAL, tmout, uaddr2, VAL3,
232 uaddr, VAL_PR, (long long) tmout->tv_sec,
238 /* uaddr is not as provided; uaddr2 is faulty but ignored */
239 CHECK_FUTEX(uaddr, FUTEX_WAIT, VAL, tmout, uaddr2 + 1, VAL3,
242 uaddr, VAL_PR, (long long) tmout->tv_sec,
245 /* uaddr is not as provided; uaddr2 is faulty but ignored */
246 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_WAIT, VAL, tmout,
250 uaddr, VAL_PR, (long long) tmout->tv_sec,
256 CHECK_FUTEX_ENOSYS(uaddr,
261 uaddr, VAL_PR, (long long) tmout->tv_sec,
264 CHECK_FUTEX_ENOSYS(uaddr,
269 uaddr, VAL_PR, (long long) tmout->tv_sec,
276 * 1. uaddr - futex address
278 * 3. val - expected value stored in uaddr
284 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_WAIT_BITSET, VAL, tmout, uaddr2 + 1,
288 uaddr, VAL_PR, (long long) tmout->tv_sec,
293 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_WAIT_BITSET, VAL, tmout, uaddr2 + 1, 0,
297 uaddr, VAL_PR, (long long) tmout->tv_sec,
300 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_WAIT_BITSET, VAL,
304 uaddr, VAL_PR, (long long) tmout->tv_sec,
310 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_CLOCK_REALTIME | FUTEX_WAIT_BITSET, VAL,
314 uaddr, VAL_PR, (long long) tmout->tv_sec,
319 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_CLOCK_REALTIME | FUTEX_WAIT_BITSET, VAL,
323 uaddr, VAL_PR, (long long) tmout->tv_sec,
326 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_CLOCK_REALTIME | FUTEX_PRIVATE_FLAG |
331 uaddr, VAL_PR, (long long) tmout->tv_sec,
335 /* FUTEX_WAKE - wake val processes waiting for uaddr
337 * 1. uaddr - futex address
346 CHECK_FUTEX(uaddr, FUTEX_WAKE, 0, NULL, NULL, 0, (rc == 0));
347 printf("futex(%p, FUTEX_WAKE, %u) = %s\n", uaddr, 0, sprintrc(rc));
350 CHECK_FUTEX(uaddr, FUTEX_WAKE, 10, NULL, NULL, 0, (rc == 0));
351 printf("futex(%p, FUTEX_WAKE, %u) = %s\n", uaddr, 10, sprintrc(rc));
354 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_WAKE, 10, NULL,
356 printf("futex(%p, FUTEX_WAKE_PRIVATE, %u) = %s\n", uaddr, 10,
361 /* FUTEX_WAKE_BITSET - wake val processes waiting for uaddr which has at
365 * 1. uaddr - futex address
374 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_WAKE_BITSET, 10, NULL, NULL,
376 printf("futex(%p, FUTEX_WAKE_BITSET, %u, %#x) = %s\n", uaddr, 10,
380 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_WAKE_BITSET, 10, NULL, NULL, 0,
382 printf("futex(%p, FUTEX_WAKE_BITSET, %u, %#x) = %s\n", uaddr, 10, 0,
386 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_WAKE_BITSET, 10,
388 printf("futex(%p, FUTEX_WAKE_BITSET_PRIVATE, %u, %#x) = %s\n", uaddr,
395 * 1. uaddr - futex address
404 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_FD, VAL, NULL, NULL, VAL3,
406 printf("futex(%p, FUTEX_FD, %u) = %s\n", uaddr, VAL_PR, sprintrc(rc));
409 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_FD, VAL, NULL,
411 printf("futex(%p, FUTEX_FD|FUTEX_PRIVATE_FLAG, %u) = %s\n", uaddr,
418 * 1. uaddr - futex address
427 CHECK_FUTEX(uaddr, FUTEX_REQUEUE, VAL, VAL2, uaddr2, VAL3,
430 uaddr, VAL_PR, VAL2_PR, uaddr2, sprintrc(rc));
432 CHECK_FUTEX(uaddr, FUTEX_REQUEUE, VALP, VAL2P, uaddr2, VAL3,
435 uaddr, VALP_PR, VAL2P_PR, uaddr2, sprintrc(rc));
438 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_REQUEUE, VAL, VAL2,
441 uaddr, VAL_PR, VAL2_PR, uaddr2, sprintrc(rc));
443 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_REQUEUE, VALP,
446 uaddr, VALP_PR, VAL2P_PR, uaddr2, sprintrc(rc));
452 * if uaddr has value val3
454 * 1. uaddr - futex address
459 * 6. val3 - expected value stored in uaddr
463 CHECK_FUTEX(uaddr, FUTEX_CMP_REQUEUE, VAL, VAL2, uaddr2, VAL3,
466 uaddr, VAL_PR, VAL2_PR, uaddr2, VAL3_PR, sprintrc(rc));
468 CHECK_FUTEX(uaddr, FUTEX_CMP_REQUEUE, VALP, VAL2P, uaddr2, VAL3,
471 uaddr, VALP_PR, VAL2P_PR, uaddr2, VAL3_PR, sprintrc(rc));
474 CHECK_FUTEX(uaddr, FUTEX_CMP_REQUEUE, VAL, VAL2, uaddr2, *uaddr,
477 uaddr, VAL_PR, VAL2_PR, uaddr2, *uaddr, sprintrc(rc));
479 CHECK_FUTEX(uaddr, FUTEX_CMP_REQUEUE, VALP, VAL2P, uaddr2, *uaddr,
482 uaddr, VALP_PR, VAL2P_PR, uaddr2, *uaddr, sprintrc(rc));
485 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_CMP_REQUEUE, VAL,
486 VAL2, uaddr2, *uaddr,
489 uaddr, VAL_PR, VAL2_PR, uaddr2, *uaddr, sprintrc(rc));
491 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_CMP_REQUEUE, VALP,
492 VAL2P, uaddr2, *uaddr, (rc == 0));
494 uaddr, VALP_PR, VAL2P_PR, uaddr2, *uaddr, sprintrc(rc));
499 /* FUTEX_WAKE_OP - wake val processes waiting for uaddr, additionally
505 * 1. uaddr - futex address
589 CHECK_FUTEX_ENOSYS(uaddr,
604 " = %s\n", uaddr, j ? "_PRIVATE" : "", VAL_PR,
621 * 1. uaddr - futex address
629 *uaddr = getpid();
631 CHECK_FUTEX_ENOSYS(uaddr + 1, FUTEX_LOCK_PI, VAL, tmout, uaddr2 + 1,
634 uaddr + 1, (long long) tmout->tv_sec,
637 CHECK_FUTEX_ENOSYS(uaddr + 1, FUTEX_PRIVATE_FLAG | FUTEX_LOCK_PI, VAL,
641 uaddr + 1, (long long) tmout->tv_sec,
654 * 1. uaddr - futex address
662 CHECK_FUTEX_ENOSYS(uaddr + 1, FUTEX_UNLOCK_PI, VAL, tmout, uaddr2 + 1,
664 printf("futex(%p, FUTEX_UNLOCK_PI) = %s\n", uaddr + 1, sprintrc(rc));
666 CHECK_FUTEX_ENOSYS(uaddr + 1, FUTEX_PRIVATE_FLAG | FUTEX_UNLOCK_PI, VAL,
668 printf("futex(%p, FUTEX_UNLOCK_PI_PRIVATE) = %s\n", uaddr + 1,
676 * 1. uaddr - futex address
684 CHECK_FUTEX_ENOSYS(uaddr + 1, FUTEX_TRYLOCK_PI, VAL, tmout, uaddr2 + 1,
686 printf("futex(%p, FUTEX_TRYLOCK_PI) = %s\n", uaddr + 1, sprintrc(rc));
688 CHECK_FUTEX_ENOSYS(uaddr + 1, FUTEX_PRIVATE_FLAG | FUTEX_TRYLOCK_PI,
690 printf("futex(%p, FUTEX_TRYLOCK_PI_PRIVATE) = %s\n", uaddr + 1,
702 * 1. uaddr - futex address
704 * 3. val - expected value stored in uaddr
712 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_WAIT_REQUEUE_PI, VAL, tmout, uaddr2,
716 uaddr, VAL_PR, (long long) tmout->tv_sec,
719 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_WAIT_REQUEUE_PI,
723 uaddr, VAL_PR, (long long) tmout->tv_sec,
726 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_CLOCK_REALTIME | FUTEX_WAIT_REQUEUE_PI,
730 uaddr, VAL_PR, (long long) tmout->tv_sec,
733 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_CLOCK_REALTIME | FUTEX_PRIVATE_FLAG |
738 uaddr, VAL_PR, (long long) tmout->tv_sec,
744 * 1. uaddr - futex address
750 * 6. val3 - expected value stored in uaddr
757 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_CMP_REQUEUE_PI, VAL, VAL2, uaddr2, VAL3,
760 uaddr, VAL_PR, VAL2_PR, uaddr2, VAL3_PR, sprintrc(rc));
762 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_CMP_REQUEUE_PI, VAL, VAL2, uaddr2,
763 *uaddr, (rc == -1) && (errno == EINVAL));
765 uaddr, VAL_PR, VAL2_PR, uaddr2, *uaddr, sprintrc(rc));
767 CHECK_FUTEX_ENOSYS(uaddr, FUTEX_PRIVATE_FLAG | FUTEX_CMP_REQUEUE_PI,
768 VAL, VAL2, uaddr2, *uaddr, (rc == -1) && (errno == EINVAL));
770 uaddr, VAL_PR, VAL2_PR, uaddr2, *uaddr, sprintrc(rc));
779 CHECK_FUTEX(uaddr, 0xd, VAL, tmout + 1, uaddr2 + 1, VAL3,
782 uaddr, VAL_PR, tmout + 1, uaddr2 + 1, VAL3_PR, sprintrc(rc));
784 CHECK_FUTEX(uaddr, 0xbefeeded, VAL, tmout + 1, uaddr2, VAL3,
787 uaddr, VAL_PR, tmout + 1, uaddr2, VAL3_PR, sprintrc(rc));