Lines Matching refs:kc

689 kqtimer_sched_callout(struct kq_timer_cb_data *kc)  in kqtimer_sched_callout()  argument
691 callout_reset_sbt_on(&kc->c, kc->next, 0, filt_timerexpire, kc->kn, in kqtimer_sched_callout()
692 kc->cpuid, C_ABSOLUTE); in kqtimer_sched_callout()
698 struct kq_timer_cb_data *kc, *kc1; in kqtimer_proc_continue() local
707 TAILQ_FOREACH_SAFE(kc, &p->p_kqtim_stop, link, kc1) { in kqtimer_proc_continue()
708 TAILQ_REMOVE(&p->p_kqtim_stop, kc, link); in kqtimer_proc_continue()
709 kc->flags &= ~KQ_TIMER_CB_ENQUEUED; in kqtimer_proc_continue()
710 if (kc->next <= now) in kqtimer_proc_continue()
711 filt_timerexpire_l(kc->kn, true); in kqtimer_proc_continue()
713 kqtimer_sched_callout(kc); in kqtimer_proc_continue()
720 struct kq_timer_cb_data *kc; in filt_timerexpire_l() local
725 kc = kn->kn_ptr.p_v; in filt_timerexpire_l()
727 if ((kn->kn_flags & EV_ONESHOT) != 0 || kc->to == 0) { in filt_timerexpire_l()
734 if (now >= kc->next) { in filt_timerexpire_l()
735 delta = (now - kc->next) / kc->to; in filt_timerexpire_l()
739 kc->next += delta * kc->to; in filt_timerexpire_l()
740 if (now >= kc->next) /* overflow */ in filt_timerexpire_l()
741 kc->next = now + kc->to; in filt_timerexpire_l()
752 p = kc->p; in filt_timerexpire_l()
757 if ((kc->flags & KQ_TIMER_CB_ENQUEUED) == 0) { in filt_timerexpire_l()
758 kc->flags |= KQ_TIMER_CB_ENQUEUED; in filt_timerexpire_l()
759 TAILQ_INSERT_TAIL(&p->p_kqtim_stop, kc, link); in filt_timerexpire_l()
768 kqtimer_sched_callout(kc); in filt_timerexpire_l()
811 struct kq_timer_cb_data *kc; in filt_timerattach() local
833 kn->kn_ptr.p_v = kc = malloc(sizeof(*kc), M_KQUEUE, M_WAITOK); in filt_timerattach()
834 kc->kn = kn; in filt_timerattach()
835 kc->p = curproc; in filt_timerattach()
836 kc->cpuid = PCPU_GET(cpuid); in filt_timerattach()
837 kc->flags = 0; in filt_timerattach()
838 callout_init(&kc->c, 1); in filt_timerattach()
847 struct kq_timer_cb_data *kc; in filt_timerstart() local
849 kc = kn->kn_ptr.p_v; in filt_timerstart()
851 kc->next = to; in filt_timerstart()
852 kc->to = 0; in filt_timerstart()
854 kc->next = to + sbinuptime(); in filt_timerstart()
855 kc->to = to; in filt_timerstart()
857 kqtimer_sched_callout(kc); in filt_timerstart()
863 struct kq_timer_cb_data *kc; in filt_timerdetach() local
867 kc = kn->kn_ptr.p_v; in filt_timerdetach()
869 callout_drain(&kc->c); in filt_timerdetach()
875 PROC_LOCK(kc->p); in filt_timerdetach()
876 if ((kc->flags & KQ_TIMER_CB_ENQUEUED) != 0) { in filt_timerdetach()
877 kc->flags &= ~KQ_TIMER_CB_ENQUEUED; in filt_timerdetach()
878 TAILQ_REMOVE(&kc->p->p_kqtim_stop, kc, link); in filt_timerdetach()
880 pending = callout_pending(&kc->c); in filt_timerdetach()
881 PROC_UNLOCK(kc->p); in filt_timerdetach()
883 free(kc, M_KQUEUE); in filt_timerdetach()
892 struct kq_timer_cb_data *kc; in filt_timertouch() local
901 kc = kn->kn_ptr.p_v; in filt_timertouch()
904 callout_drain(&kc->c); in filt_timertouch()