Lines Matching refs:timer
36 libinput_timer_init(struct libinput_timer *timer, in libinput_timer_init() argument
42 timer->libinput = libinput; in libinput_timer_init()
43 timer->timer_name = safe_strdup(timer_name); in libinput_timer_init()
44 timer->timer_func = timer_func; in libinput_timer_init()
45 timer->timer_func_data = timer_func_data; in libinput_timer_init()
49 libinput_timer_destroy(struct libinput_timer *timer) in libinput_timer_destroy() argument
51 if (timer->link.prev != NULL && timer->link.prev != NULL && in libinput_timer_destroy()
52 !list_empty(&timer->link)) { in libinput_timer_destroy()
53 log_bug_libinput(timer->libinput, in libinput_timer_destroy()
55 timer->timer_name); in libinput_timer_destroy()
58 free(timer->timer_name); in libinput_timer_destroy()
65 struct libinput_timer *timer; in libinput_timer_arm_timer_fd() local
69 list_for_each(timer, &libinput->timer.list, link) { in libinput_timer_arm_timer_fd()
70 if (timer->expire < earliest_expire) in libinput_timer_arm_timer_fd()
71 earliest_expire = timer->expire; in libinput_timer_arm_timer_fd()
79 r = timerfd_settime(libinput->timer.fd, TFD_TIMER_ABSTIME, &its, NULL); in libinput_timer_arm_timer_fd()
83 libinput->timer.next_expiry = earliest_expire; in libinput_timer_arm_timer_fd()
87 libinput_timer_set_flags(struct libinput_timer *timer, in libinput_timer_set_flags() argument
92 uint64_t now = libinput_now(timer->libinput); in libinput_timer_set_flags()
95 log_bug_client(timer->libinput, in libinput_timer_set_flags()
97 timer->timer_name, in libinput_timer_set_flags()
100 log_bug_libinput(timer->libinput, in libinput_timer_set_flags()
102 timer->timer_name, in libinput_timer_set_flags()
109 if (!timer->expire) in libinput_timer_set_flags()
110 list_insert(&timer->libinput->timer.list, &timer->link); in libinput_timer_set_flags()
112 timer->expire = expire; in libinput_timer_set_flags()
113 libinput_timer_arm_timer_fd(timer->libinput); in libinput_timer_set_flags()
117 libinput_timer_set(struct libinput_timer *timer, uint64_t expire) in libinput_timer_set() argument
119 libinput_timer_set_flags(timer, expire, TIMER_FLAG_NONE); in libinput_timer_set()
123 libinput_timer_cancel(struct libinput_timer *timer) in libinput_timer_cancel() argument
125 if (!timer->expire) in libinput_timer_cancel()
128 timer->expire = 0; in libinput_timer_cancel()
129 list_remove(&timer->link); in libinput_timer_cancel()
130 libinput_timer_arm_timer_fd(timer->libinput); in libinput_timer_cancel()
136 struct libinput_timer *timer; in libinput_timer_handler() local
139 list_for_each(timer, &libinput->timer.list, link) { in libinput_timer_handler()
140 if (timer->expire == 0) in libinput_timer_handler()
143 if (timer->expire <= now) { in libinput_timer_handler()
146 libinput_timer_cancel(timer); in libinput_timer_handler()
147 timer->timer_func(now, timer->timer_func_data); in libinput_timer_handler()
170 r = read(libinput->timer.fd, &discard, sizeof(discard)); in libinput_timer_dispatch()
187 libinput->timer.fd = timerfd_create(CLOCK_MONOTONIC, in libinput_timer_subsys_init()
189 if (libinput->timer.fd < 0) in libinput_timer_subsys_init()
192 list_init(&libinput->timer.list); in libinput_timer_subsys_init()
194 libinput->timer.source = libinput_add_fd(libinput, in libinput_timer_subsys_init()
195 libinput->timer.fd, in libinput_timer_subsys_init()
198 if (!libinput->timer.source) { in libinput_timer_subsys_init()
199 close(libinput->timer.fd); in libinput_timer_subsys_init()
210 if (!list_empty(&libinput->timer.list)) { in libinput_timer_subsys_destroy()
213 list_for_each(t, &libinput->timer.list, link) { in libinput_timer_subsys_destroy()
222 assert(list_empty(&libinput->timer.list)); in libinput_timer_subsys_destroy()
224 libinput_remove_source(libinput, libinput->timer.source); in libinput_timer_subsys_destroy()
225 close(libinput->timer.fd); in libinput_timer_subsys_destroy()
240 if (libinput->timer.next_expiry == 0 || in libinput_timer_flush()
241 libinput->timer.next_expiry > now) in libinput_timer_flush()