Lines Matching refs:uffd

29 	int uffd = reader_args->uffd;  in uffd_handler_thread_fn()  local
41 TEST_ASSERT(!epoll_ctl(epollfd, EPOLL_CTL_ADD, uffd, &evt), in uffd_handler_thread_fn()
73 r = read(uffd, &msg, sizeof(msg)); in uffd_handler_thread_fn()
88 r = reader_args->handler(reader_args->uffd_mode, uffd, &msg); in uffd_handler_thread_fn()
109 int uffd; in uffd_setup_demand_paging() local
137 uffd = syscall(__NR_userfaultfd, O_CLOEXEC | O_NONBLOCK); in uffd_setup_demand_paging()
138 TEST_ASSERT(uffd >= 0, "uffd creation failed, errno: %d", errno); in uffd_setup_demand_paging()
142 TEST_ASSERT(ioctl(uffd, UFFDIO_API, &uffdio_api) != -1, in uffd_setup_demand_paging()
149 TEST_ASSERT(ioctl(uffd, UFFDIO_REGISTER, &uffdio_register) != -1, in uffd_setup_demand_paging()
154 uffd_desc->uffd = uffd; in uffd_setup_demand_paging()
165 uffd_desc->reader_args[i].uffd = uffd; in uffd_setup_demand_paging()
180 void uffd_stop_demand_paging(struct uffd_desc *uffd) in uffd_stop_demand_paging() argument
185 for (i = 0; i < uffd->num_readers; ++i) in uffd_stop_demand_paging()
186 TEST_ASSERT(write(uffd->pipefds[i], &c, 1) == 1, in uffd_stop_demand_paging()
187 "Unable to write to pipefd %i for uffd_desc %p", i, uffd); in uffd_stop_demand_paging()
189 for (i = 0; i < uffd->num_readers; ++i) in uffd_stop_demand_paging()
190 TEST_ASSERT(!pthread_join(uffd->readers[i], NULL), in uffd_stop_demand_paging()
191 "Pthread_join failed on reader %i for uffd_desc %p", i, uffd); in uffd_stop_demand_paging()
193 close(uffd->uffd); in uffd_stop_demand_paging()
195 for (i = 0; i < uffd->num_readers; ++i) { in uffd_stop_demand_paging()
196 close(uffd->pipefds[i]); in uffd_stop_demand_paging()
197 close(uffd->reader_args[i].pipe); in uffd_stop_demand_paging()
200 free(uffd->pipefds); in uffd_stop_demand_paging()
201 free(uffd->readers); in uffd_stop_demand_paging()
202 free(uffd->reader_args); in uffd_stop_demand_paging()
203 free(uffd); in uffd_stop_demand_paging()