Lines Matching refs:kc

695 kqtimer_sched_callout(struct kq_timer_cb_data *kc)  in kqtimer_sched_callout()  argument
697 callout_reset_sbt_on(&kc->c, kc->next, 0, filt_timerexpire, kc->kn, in kqtimer_sched_callout()
698 kc->cpuid, C_ABSOLUTE); in kqtimer_sched_callout()
704 struct kq_timer_cb_data *kc, *kc1; in kqtimer_proc_continue() local
713 TAILQ_FOREACH_SAFE(kc, &p->p_kqtim_stop, link, kc1) { in kqtimer_proc_continue()
714 TAILQ_REMOVE(&p->p_kqtim_stop, kc, link); in kqtimer_proc_continue()
715 kc->flags &= ~KQ_TIMER_CB_ENQUEUED; in kqtimer_proc_continue()
716 if (kc->next <= now) in kqtimer_proc_continue()
717 filt_timerexpire_l(kc->kn, true); in kqtimer_proc_continue()
719 kqtimer_sched_callout(kc); in kqtimer_proc_continue()
726 struct kq_timer_cb_data *kc; in filt_timerexpire_l() local
731 kc = kn->kn_ptr.p_v; in filt_timerexpire_l()
733 if ((kn->kn_flags & EV_ONESHOT) != 0 || kc->to == 0) { in filt_timerexpire_l()
740 if (now >= kc->next) { in filt_timerexpire_l()
741 delta = (now - kc->next) / kc->to; in filt_timerexpire_l()
745 kc->next += delta * kc->to; in filt_timerexpire_l()
746 if (now >= kc->next) /* overflow */ in filt_timerexpire_l()
747 kc->next = now + kc->to; in filt_timerexpire_l()
758 p = kc->p; in filt_timerexpire_l()
763 if ((kc->flags & KQ_TIMER_CB_ENQUEUED) == 0) { in filt_timerexpire_l()
764 kc->flags |= KQ_TIMER_CB_ENQUEUED; in filt_timerexpire_l()
765 TAILQ_INSERT_TAIL(&p->p_kqtim_stop, kc, link); in filt_timerexpire_l()
774 kqtimer_sched_callout(kc); in filt_timerexpire_l()
817 struct kq_timer_cb_data *kc; in filt_timerattach() local
839 kn->kn_ptr.p_v = kc = malloc(sizeof(*kc), M_KQUEUE, M_WAITOK); in filt_timerattach()
840 kc->kn = kn; in filt_timerattach()
841 kc->p = curproc; in filt_timerattach()
842 kc->cpuid = PCPU_GET(cpuid); in filt_timerattach()
843 kc->flags = 0; in filt_timerattach()
844 callout_init(&kc->c, 1); in filt_timerattach()
853 struct kq_timer_cb_data *kc; in filt_timerstart() local
855 kc = kn->kn_ptr.p_v; in filt_timerstart()
857 kc->next = to; in filt_timerstart()
858 kc->to = 0; in filt_timerstart()
860 kc->next = to + sbinuptime(); in filt_timerstart()
861 kc->to = to; in filt_timerstart()
863 kqtimer_sched_callout(kc); in filt_timerstart()
869 struct kq_timer_cb_data *kc; in filt_timerdetach() local
873 kc = kn->kn_ptr.p_v; in filt_timerdetach()
875 callout_drain(&kc->c); in filt_timerdetach()
881 PROC_LOCK(kc->p); in filt_timerdetach()
882 if ((kc->flags & KQ_TIMER_CB_ENQUEUED) != 0) { in filt_timerdetach()
883 kc->flags &= ~KQ_TIMER_CB_ENQUEUED; in filt_timerdetach()
884 TAILQ_REMOVE(&kc->p->p_kqtim_stop, kc, link); in filt_timerdetach()
886 pending = callout_pending(&kc->c); in filt_timerdetach()
887 PROC_UNLOCK(kc->p); in filt_timerdetach()
889 free(kc, M_KQUEUE); in filt_timerdetach()
898 struct kq_timer_cb_data *kc; in filt_timertouch() local
907 kc = kn->kn_ptr.p_v; in filt_timertouch()
910 callout_drain(&kc->c); in filt_timertouch()