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