diff --git a/testcases/kernel/syscalls/futex/futex2test.h b/testcases/kernel/syscalls/futex/futex2test.h index ce97f47c1b6..a3cd0ef5cbc 100644 --- a/testcases/kernel/syscalls/futex/futex2test.h +++ b/testcases/kernel/syscalls/futex/futex2test.h @@ -12,6 +12,14 @@ #include #include "lapi/syscalls.h" #include "futextest.h" +#include "lapi/abisize.h" + +#ifdef TST_ABI32 +struct timespec64 { + int64_t tv_sec; + int64_t tv_nsec; +}; +#endif /** * futex_waitv - Wait at multiple futexes, wake on any @@ -24,7 +32,16 @@ static inline int futex_waitv(volatile struct futex_waitv *waiters, unsigned long nr_waiters, unsigned long flags, struct timespec *timo, clockid_t clockid) { +#ifdef TST_ABI32 + struct timespec64 timo64 = {0}; + + timo64.tv_sec = timo->tv_sec; + timo64.tv_nsec = timo->tv_nsec; + return tst_syscall(__NR_futex_waitv, waiters, nr_waiters, flags, &timo64, clockid); +#else return tst_syscall(__NR_futex_waitv, waiters, nr_waiters, flags, timo, clockid); + +#endif } #endif /* _FUTEX2TEST_H */