Lines Matching refs:timer
144 static int common_timer_del(struct k_itimer *timer);
196 hrtimer_init(&new_timer->it.real.timer, new_timer->it_clock, 0); in common_timer_create()
274 struct hrtimer *timer = &timr->it.real.timer; in schedule_next_timer() local
279 timr->it_overrun += (unsigned int) hrtimer_forward(timer, in schedule_next_timer()
280 timer->base->get_time(), in schedule_next_timer()
286 hrtimer_restart(timer); in schedule_next_timer()
356 static enum hrtimer_restart posix_timer_fn(struct hrtimer *timer) in posix_timer_fn() argument
363 timr = container_of(timer, struct k_itimer, it.real.timer); in posix_timer_fn()
376 ktime_t now = hrtimer_cb_get_time(timer); in posix_timer_fn()
409 hrtimer_forward(timer, now, in posix_timer_fn()
625 struct hrtimer *timer = &timr->it.real.timer; in common_timer_get() local
634 else if (!hrtimer_active(timer) && in common_timer_get()
638 now = timer->base->get_time(); in common_timer_get()
647 timr->it_overrun += (unsigned int) hrtimer_forward(timer, now, iv); in common_timer_get()
649 remaining = ktime_sub(hrtimer_get_expires(timer), now); in common_timer_get()
715 struct hrtimer *timer = &timr->it.real.timer; in common_timer_set() local
727 if (hrtimer_try_to_cancel(timer) < 0) in common_timer_set()
739 hrtimer_init(&timr->it.real.timer, timr->it_clock, mode); in common_timer_set()
740 timr->it.real.timer.function = posix_timer_fn; in common_timer_set()
742 hrtimer_set_expires(timer, timespec_to_ktime(new_setting->it_value)); in common_timer_set()
751 hrtimer_add_expires(timer, timer->base->get_time()); in common_timer_set()
756 hrtimer_start_expires(timer, mode); in common_timer_set()
801 static inline int common_timer_del(struct k_itimer *timer) in common_timer_del() argument
803 timer->it.real.interval.tv64 = 0; in common_timer_del()
805 if (hrtimer_try_to_cancel(&timer->it.real.timer) < 0) in common_timer_del()
810 static inline int timer_delete_hook(struct k_itimer *timer) in timer_delete_hook() argument
812 return CLOCK_DISPATCH(timer->it_clock, timer_del, (timer)); in timer_delete_hook()
818 struct k_itimer *timer; in SYSCALL_DEFINE1() local
822 timer = lock_timer(timer_id, &flags); in SYSCALL_DEFINE1()
823 if (!timer) in SYSCALL_DEFINE1()
826 if (timer_delete_hook(timer) == TIMER_RETRY) { in SYSCALL_DEFINE1()
827 unlock_timer(timer, flags); in SYSCALL_DEFINE1()
832 list_del(&timer->list); in SYSCALL_DEFINE1()
838 timer->it_signal = NULL; in SYSCALL_DEFINE1()
840 unlock_timer(timer, flags); in SYSCALL_DEFINE1()
841 release_posix_timer(timer, IT_ID_SET); in SYSCALL_DEFINE1()
848 static void itimer_delete(struct k_itimer *timer) in itimer_delete() argument
853 spin_lock_irqsave(&timer->it_lock, flags); in itimer_delete()
855 if (timer_delete_hook(timer) == TIMER_RETRY) { in itimer_delete()
856 unlock_timer(timer, flags); in itimer_delete()
859 list_del(&timer->list); in itimer_delete()
864 timer->it_signal = NULL; in itimer_delete()
866 unlock_timer(timer, flags); in itimer_delete()
867 release_posix_timer(timer, IT_ID_SET); in itimer_delete()