Lines Matching refs:timer

138 static int common_timer_del(struct k_itimer *timer);
159 struct k_itimer *timer; in __posix_timers_find() local
161 hlist_for_each_entry_rcu(timer, head, t_hash) { in __posix_timers_find()
162 if ((timer->it_signal == sig) && (timer->it_id == id)) in __posix_timers_find()
163 return timer; in __posix_timers_find()
176 static int posix_timer_add(struct k_itimer *timer) in posix_timer_add() argument
187 hlist_add_head_rcu(&timer->t_hash, head); in posix_timer_add()
360 struct hrtimer *timer = &timr->it.real.timer; in schedule_next_timer() local
365 timr->it_overrun += (unsigned int) hrtimer_forward(timer, in schedule_next_timer()
366 timer->base->get_time(), in schedule_next_timer()
372 hrtimer_restart(timer); in schedule_next_timer()
442 static enum hrtimer_restart posix_timer_fn(struct hrtimer *timer) in posix_timer_fn() argument
449 timr = container_of(timer, struct k_itimer, it.real.timer); in posix_timer_fn()
462 ktime_t now = hrtimer_cb_get_time(timer); in posix_timer_fn()
495 hrtimer_forward(timer, now, in posix_timer_fn()
596 hrtimer_init(&new_timer->it.real.timer, new_timer->it_clock, 0); in common_timer_create()
739 struct hrtimer *timer = &timr->it.real.timer; in common_timer_get() local
748 else if (!hrtimer_active(timer) && in common_timer_get()
752 now = timer->base->get_time(); in common_timer_get()
761 timr->it_overrun += (unsigned int) hrtimer_forward(timer, now, iv); in common_timer_get()
763 remaining = __hrtimer_expires_remaining_adjusted(timer, now); in common_timer_get()
835 struct hrtimer *timer = &timr->it.real.timer; in common_timer_set() local
847 if (hrtimer_try_to_cancel(timer) < 0) in common_timer_set()
859 hrtimer_init(&timr->it.real.timer, timr->it_clock, mode); in common_timer_set()
860 timr->it.real.timer.function = posix_timer_fn; in common_timer_set()
862 hrtimer_set_expires(timer, timespec_to_ktime(new_setting->it_value)); in common_timer_set()
871 hrtimer_add_expires(timer, timer->base->get_time()); in common_timer_set()
876 hrtimer_start_expires(timer, mode); in common_timer_set()
925 static int common_timer_del(struct k_itimer *timer) in common_timer_del() argument
927 timer->it.real.interval.tv64 = 0; in common_timer_del()
929 if (hrtimer_try_to_cancel(&timer->it.real.timer) < 0) in common_timer_del()
934 static inline int timer_delete_hook(struct k_itimer *timer) in timer_delete_hook() argument
936 struct k_clock *kc = clockid_to_kclock(timer->it_clock); in timer_delete_hook()
940 return kc->timer_del(timer); in timer_delete_hook()
946 struct k_itimer *timer; in SYSCALL_DEFINE1() local
950 timer = lock_timer(timer_id, &flags); in SYSCALL_DEFINE1()
951 if (!timer) in SYSCALL_DEFINE1()
954 if (timer_delete_hook(timer) == TIMER_RETRY) { in SYSCALL_DEFINE1()
955 unlock_timer(timer, flags); in SYSCALL_DEFINE1()
960 list_del(&timer->list); in SYSCALL_DEFINE1()
966 timer->it_signal = NULL; in SYSCALL_DEFINE1()
968 unlock_timer(timer, flags); in SYSCALL_DEFINE1()
969 release_posix_timer(timer, IT_ID_SET); in SYSCALL_DEFINE1()
976 static void itimer_delete(struct k_itimer *timer) in itimer_delete() argument
981 spin_lock_irqsave(&timer->it_lock, flags); in itimer_delete()
983 if (timer_delete_hook(timer) == TIMER_RETRY) { in itimer_delete()
984 unlock_timer(timer, flags); in itimer_delete()
987 list_del(&timer->list); in itimer_delete()
992 timer->it_signal = NULL; in itimer_delete()
994 unlock_timer(timer, flags); in itimer_delete()
995 release_posix_timer(timer, IT_ID_SET); in itimer_delete()