thread_args
EXPECT_EQ(0, thread_args.ret);
ret = pthread_create(&thread, NULL, wait_thread, &thread_args);
EXPECT_EQ(-1, thread_args.ret);
EXPECT_EQ(ETIMEDOUT, thread_args.err);
struct wait_args thread_args;
thread_args.fd = fd;
thread_args.args = &wait_args;
thread_args.request = NTSYNC_IOC_WAIT_ANY;
ret = pthread_create(&thread, NULL, wait_thread, &thread_args);
EXPECT_EQ(0, thread_args.ret);
struct wait_args thread_args;
thread_args.fd = fd;
thread_args.args = &wait_args;
thread_args.request = NTSYNC_IOC_WAIT_ALL;
ret = pthread_create(&thread, NULL, wait_thread, &thread_args);
EXPECT_EQ(0, thread_args.ret);
struct wait_args thread_args;
thread_args.fd = fd;
thread_args.args = &wait_args;
thread_args.request = NTSYNC_IOC_WAIT_ANY;
ret = pthread_create(&thread, NULL, wait_thread, &thread_args);
EXPECT_EQ(0, thread_args.ret);
ret = pthread_create(&thread, NULL, wait_thread, &thread_args);
EXPECT_EQ(0, thread_args.ret);
ret = pthread_create(&thread, NULL, wait_thread, &thread_args);
EXPECT_EQ(0, thread_args.ret);
ret = pthread_create(&thread, NULL, wait_thread, &thread_args);
EXPECT_EQ(0, thread_args.ret);
ret = pthread_create(&thread, NULL, wait_thread, &thread_args);
EXPECT_EQ(0, thread_args.ret);
ret = pthread_create(&thread, NULL, wait_thread, &thread_args);
EXPECT_EQ(0, thread_args.ret);
ret = pthread_create(&thread, NULL, wait_thread, &thread_args);
EXPECT_EQ(-1, thread_args.ret);
EXPECT_EQ(ETIMEDOUT, thread_args.err);
struct wait_args thread_args;
thread_args.fd = fd;
thread_args.args = &wait_args;
thread_args.request = NTSYNC_IOC_WAIT_ALL;
ret = pthread_create(&thread, NULL, wait_thread, &thread_args);
struct thread_args *args = _arg;
struct thread_args *args = _arg;
struct thread_args *tas[512], *cas[512];
struct thread_args *args = calloc(1, sizeof(*args));
struct thread_args *args = calloc(1, sizeof(*args));
struct thread_args *args = tas[t];
struct thread_args *args = cas[t];
if (err_value && thread_args[i].result != -1) {
i, thread_args[i].result);
if (!err_value && thread_args[i].result != 0) {
ksft_print_msg("Thread %d failed (%d)\n", i, thread_args[i].result);
static struct thread_args thread_args[MAX_THREADS];
struct thread_args *args = arg;
thread_args[i].futex_ptr = futex_ptr;
thread_args[i].flags = FUTEX2_SIZE_U32 | FUTEX_PRIVATE_FLAG | FUTEX2_NUMA;
thread_args[i].result = 0;
ret = pthread_create(&threads[i], NULL, thread_lock_fn, &thread_args[i]);
const struct thread_args *args = varg;
struct thread_args thread_args = {
int err = pthread_create(&tid[i], NULL, &thread_main, &thread_args);
struct test_membarrier_thread_args thread_args;
thread_args.stop = 0;
thread_args.percpu_list_ptr = 0;
test_membarrier_manager_thread, &thread_args);
test_membarrier_worker_thread, &thread_args);
__atomic_store_n(&thread_args.stop, 1, __ATOMIC_RELEASE);
struct thread_args *args = _args;
struct thread_args args = { .now = &now, .rem = &rem, .clockid = clockid};
struct thread_args *args = _args;
struct thread_args args = {
&self->thread_args[i]);
struct thread_args *args = &self->thread_args[i];
struct thread_args *thread_args;
self->thread_args = calloc(nr_devices, sizeof(self->thread_args[0]));
self->thread_args[i].iommu = self->iommu;
self->thread_args[i].barrier = &self->barrier;
self->thread_args[i].device_index = i;
free(self->thread_args);
struct thread_args *args = __args;