Lines Matching refs:uffd_desc
102 struct uffd_desc *uffd_setup_demand_paging(int uffd_mode, useconds_t delay,
107 struct uffd_desc *uffd_desc;
119 uffd_desc = malloc(sizeof(struct uffd_desc));
120 TEST_ASSERT(uffd_desc, "Failed to malloc uffd descriptor");
122 uffd_desc->pipefds = calloc(sizeof(int), num_readers);
123 TEST_ASSERT(uffd_desc->pipefds, "Failed to alloc pipes");
125 uffd_desc->readers = calloc(sizeof(pthread_t), num_readers);
126 TEST_ASSERT(uffd_desc->readers, "Failed to alloc reader threads");
128 uffd_desc->reader_args = calloc(sizeof(struct uffd_reader_args), num_readers);
129 TEST_ASSERT(uffd_desc->reader_args, "Failed to alloc reader_args");
131 uffd_desc->num_readers = num_readers;
154 uffd_desc->uffd = uffd;
155 for (i = 0; i < uffd_desc->num_readers; ++i) {
159 TEST_ASSERT(!ret, "Failed to set up pipefd %i for uffd_desc %p",
160 i, uffd_desc);
162 uffd_desc->pipefds[i] = pipes[1];
164 uffd_desc->reader_args[i].uffd_mode = uffd_mode;
165 uffd_desc->reader_args[i].uffd = uffd;
166 uffd_desc->reader_args[i].delay = delay;
167 uffd_desc->reader_args[i].handler = handler;
168 uffd_desc->reader_args[i].pipe = pipes[0];
170 pthread_create(&uffd_desc->readers[i], NULL, uffd_handler_thread_fn,
171 &uffd_desc->reader_args[i]);
177 return uffd_desc;
180 void uffd_stop_demand_paging(struct uffd_desc *uffd)
187 "Unable to write to pipefd %i for uffd_desc %p", i, uffd);
191 "Pthread_join failed on reader %i for uffd_desc %p", i, uffd);