Lines Matching refs:csw

87 	struct cdevsw *csw;
106 while ((csw = SLIST_FIRST(&csw_free)) != NULL) {
108 free(csw, M_DEVT);
125 cdevsw_free_devlocked(struct cdevsw *csw)
129 SLIST_INSERT_HEAD(&cdevsw_gt_post_list, csw, d_postfree_list);
179 struct cdevsw *csw;
188 csw = dev->si_devsw;
189 if (csw != NULL) {
194 csw = NULL;
198 return (csw);
204 struct cdevsw *csw;
216 csw = dev->si_devsw;
217 KASSERT(csw != NULL, ("Eternal cdev is destroyed"));
219 return (csw);
222 csw = NULL;
231 csw = dev->si_devsw;
232 if (csw != NULL)
236 if (csw != NULL) {
240 return (csw);
566 struct cdevsw *csw;
569 csw = args->mda_devsw;
571 if (csw->d_flags & D_NEEDMINOR) {
573 LIST_FOREACH(si2, &csw->d_devs, si_list) {
596 /* Only push to csw->d_devs if it's not a cloned device. */
598 si->si_devsw = csw;
599 LIST_INSERT_HEAD(&csw->d_devs, si, si_list);
601 KASSERT(si->si_devsw == csw,
1090 struct cdevsw *csw;
1133 csw = dev->si_devsw;
1135 while (csw != NULL && csw->d_purge != NULL && dev->si_threadcount) {
1136 csw->d_purge(dev);
1137 msleep(csw, &devmtx, PRIBIO, "devprg", hz/10);
1144 msleep(&csw, &devmtx, PRIBIO, "devdrn", hz / 10);
1169 if (LIST_EMPTY(&csw->d_devs)) {
1170 fini_cdevsw(csw);
1171 wakeup(&csw->d_devs);
1297 clone_create(struct clonedevs **cdp, struct cdevsw *csw, int *up,
1306 ("clone_setup() not called in driver \"%s\"", csw->d_name));
1311 KASSERT(csw->d_flags & D_NEEDMINOR,
1326 prep_cdevsw(csw, MAKEDEV_WAITOK);
1356 args.mda_devsw = csw;
1487 destroy_dev_drain(struct cdevsw *csw)
1491 while (!LIST_EMPTY(&csw->d_devs)) {
1492 msleep(&csw->d_devs, &devmtx, PRIBIO, "devscd", hz/10);