Lines Matching defs:kr

553 	struct kcov_remote *kr;
557 kr = kd->kd_kr;
558 if (kr != NULL)
559 kcov_remote_detach(kd, kr);
644 struct kcov_remote *kr;
648 kr = kr_lookup(subsystem, id);
649 if (kr == NULL || kr->kr_state != KCOV_STATE_READY)
651 kd = kr->kr_kd;
674 kr->kr_nsections++;
686 struct kcov_remote *kr;
694 kr = kr_lookup(subsystem, id);
695 if (kr == NULL)
709 kd_copy(kr->kr_kd, &kc->kc_kd);
714 KASSERT(p->p_kd == kr->kr_kd);
717 if (--kr->kr_nsections == 0)
718 wakeup(kr);
734 struct kcov_remote *kr;
737 kr = kr_lookup(subsystem, id);
738 if (kr != NULL)
739 kr_free(kr);
746 struct kcov_remote *kr, *tmp;
756 kr = pool_get(&kr_pool, PR_WAITOK | PR_ZERO);
757 kr->kr_subsystem = subsystem;
758 kr->kr_id = id;
759 kr->kr_state = KCOV_STATE_NONE;
767 pool_put(&kr_pool, kr);
776 TAILQ_INSERT_TAIL(&kr_list, kr, kr_entry);
777 return (kr);
783 struct kcov_remote *kr = NULL;
791 kr = kcov_remote_register_locked(KCOV_REMOTE_COMMON,
793 if (kr == NULL)
799 kr->kr_state = KCOV_STATE_READY;
800 kr->kr_kd = kd;
801 kd->kd_kr = kr;
806 kcov_remote_detach(struct kcov_dev *kd, struct kcov_remote *kr)
810 KASSERT(kd == kr->kr_kd);
811 if (kr->kr_subsystem == KCOV_REMOTE_COMMON) {
812 kr_free(kr);
814 kr->kr_state = KCOV_STATE_NONE;
815 kr_barrier(kr);
817 kr->kr_kd = NULL;
822 kr_free(struct kcov_remote *kr)
826 kr->kr_state = KCOV_STATE_DYING;
827 kr_barrier(kr);
828 if (kr->kr_kd != NULL)
829 kr->kr_kd->kd_kr = NULL;
830 kr->kr_kd = NULL;
831 TAILQ_REMOVE(&kr_list, kr, kr_entry);
833 wakeup(kr);
834 pool_put(&kr_pool, kr);
838 kr_barrier(struct kcov_remote *kr)
842 while (kr->kr_nsections > 0)
843 msleep_nsec(kr, &kcov_mtx, PWAIT, "kcovbar", INFSLP);
849 struct kcov_remote *kr;
853 TAILQ_FOREACH(kr, &kr_list, kr_entry) {
854 if (kr->kr_subsystem == subsystem && kr->kr_id == id)
855 return (kr);