Lines Matching refs:inputThreadInfo
79 static InputThreadInfo *inputThreadInfo;
96 return inputThreadInfo &&
97 pthread_equal(pthread_self(), inputThreadInfo->thread);
200 if (!inputThreadInfo)
206 xorg_list_for_each_entry(old, &inputThreadInfo->devs, node) {
231 xorg_list_append(&dev->node, &inputThreadInfo->devs);
234 inputThreadInfo->changed = TRUE;
260 if (!inputThreadInfo) {
266 xorg_list_for_each_entry(dev, &inputThreadInfo->devs, node)
279 inputThreadInfo->changed = TRUE;
294 inputThreadInfo->running = FALSE;
323 inputThreadInfo->running = TRUE;
331 ospoll_add(inputThreadInfo->fds, hotplugPipeRead,
335 ospoll_listen(inputThreadInfo->fds, hotplugPipeRead, X_NOTIFY_READ);
337 while (inputThreadInfo->running)
342 if (inputThreadInfo->changed) {
346 inputThreadInfo->changed = FALSE;
347 xorg_list_for_each_entry_safe(dev, tmp, &inputThreadInfo->devs, node) {
350 ospoll_add(inputThreadInfo->fds, dev->fd,
354 ospoll_listen(inputThreadInfo->fds, dev->fd, X_NOTIFY_READ);
360 ospoll_remove(inputThreadInfo->fds, dev->fd);
369 if (ospoll_wait(inputThreadInfo->fds, -1) < 0) {
378 InputThreadFillPipe(inputThreadInfo->writePipe);
381 ospoll_remove(inputThreadInfo->fds, hotplugPipeRead);
411 inputThreadInfo = malloc(sizeof(InputThreadInfo));
412 if (!inputThreadInfo)
415 inputThreadInfo->changed = FALSE;
417 inputThreadInfo->thread = 0;
418 xorg_list_init(&inputThreadInfo->devs);
419 inputThreadInfo->fds = ospoll_create();
425 inputThreadInfo->readPipe = fds[0];
426 fcntl(inputThreadInfo->readPipe, F_SETFL, O_NONBLOCK);
427 flags = fcntl(inputThreadInfo->readPipe, F_GETFD);
430 (void)fcntl(inputThreadInfo->readPipe, F_SETFD, flags);
432 SetNotifyFd(inputThreadInfo->readPipe, InputThreadNotifyPipe, X_NOTIFY_READ, NULL);
434 inputThreadInfo->writePipe = fds[1];
469 if (!inputThreadInfo)
483 pthread_create(&inputThreadInfo->thread, &attr,
499 if (!inputThreadInfo)
505 pthread_join(inputThreadInfo->thread, NULL);
507 xorg_list_for_each_entry_safe(dev, next, &inputThreadInfo->devs, node) {
508 ospoll_remove(inputThreadInfo->fds, dev->fd);
511 xorg_list_init(&inputThreadInfo->devs);
512 ospoll_destroy(inputThreadInfo->fds);
514 RemoveNotifyFd(inputThreadInfo->readPipe);
515 close(inputThreadInfo->readPipe);
516 close(inputThreadInfo->writePipe);
517 inputThreadInfo->readPipe = -1;
518 inputThreadInfo->writePipe = -1;
524 free(inputThreadInfo);
525 inputThreadInfo = NULL;