Lines Matching refs:devsoftc
307 } devsoftc; variable
315 lockinit(&devsoftc.lock, "dev mtx", 0, 0); in predevinit()
316 TAILQ_INIT(&devsoftc.devq); in predevinit()
339 lockmgr(&devsoftc.lock, LK_EXCLUSIVE); in devopen()
340 if (devsoftc.inuse) { in devopen()
341 lockmgr(&devsoftc.lock, LK_RELEASE); in devopen()
345 devsoftc.inuse = 1; in devopen()
346 devsoftc.async_proc = NULL; in devopen()
347 lockmgr(&devsoftc.lock, LK_RELEASE); in devopen()
355 lockmgr(&devsoftc.lock, LK_EXCLUSIVE); in devclose()
356 devsoftc.inuse = 0; in devclose()
357 wakeup(&devsoftc); in devclose()
358 lockmgr(&devsoftc.lock, LK_RELEASE); in devclose()
378 lockmgr(&devsoftc.lock, LK_EXCLUSIVE); in devread()
379 while (TAILQ_EMPTY(&devsoftc.devq)) { in devread()
381 lockmgr(&devsoftc.lock, LK_RELEASE); in devread()
384 tsleep_interlock(&devsoftc, PCATCH); in devread()
385 lockmgr(&devsoftc.lock, LK_RELEASE); in devread()
386 rv = tsleep(&devsoftc, PCATCH | PINTERLOCKED, "devctl", 0); in devread()
387 lockmgr(&devsoftc.lock, LK_EXCLUSIVE); in devread()
392 lockmgr(&devsoftc.lock, LK_RELEASE); in devread()
396 n1 = TAILQ_FIRST(&devsoftc.devq); in devread()
397 TAILQ_REMOVE(&devsoftc.devq, n1, dei_link); in devread()
398 lockmgr(&devsoftc.lock, LK_RELEASE); in devread()
414 devsoftc.async_proc = curproc; in devioctl()
416 devsoftc.async_proc = NULL; in devioctl()
445 lockmgr(&devsoftc.lock, LK_EXCLUSIVE); in devkqfilter()
453 lockmgr(&devsoftc.lock, LK_RELEASE); in devkqfilter()
457 klist = &devsoftc.kq.ki_note; in devkqfilter()
460 lockmgr(&devsoftc.lock, LK_RELEASE); in devkqfilter()
470 lockmgr(&devsoftc.lock, LK_EXCLUSIVE); in dev_filter_detach()
471 klist = &devsoftc.kq.ki_note; in dev_filter_detach()
473 lockmgr(&devsoftc.lock, LK_RELEASE); in dev_filter_detach()
481 lockmgr(&devsoftc.lock, LK_EXCLUSIVE); in dev_filter_read()
482 if (!TAILQ_EMPTY(&devsoftc.devq)) in dev_filter_read()
484 lockmgr(&devsoftc.lock, LK_RELEASE); in dev_filter_read()
496 return (devsoftc.inuse == 1); in devctl_process_running()
516 lockmgr(&devsoftc.lock, LK_EXCLUSIVE); in devctl_queue_data()
517 TAILQ_INSERT_TAIL(&devsoftc.devq, n1, dei_link); in devctl_queue_data()
518 wakeup(&devsoftc); in devctl_queue_data()
519 lockmgr(&devsoftc.lock, LK_RELEASE); in devctl_queue_data()
520 KNOTE(&devsoftc.kq.ki_note, 0); in devctl_queue_data()
521 p = devsoftc.async_proc; in devctl_queue_data()
707 lockmgr(&devsoftc.lock, LK_EXCLUSIVE); in sysctl_devctl_disable()
710 while (!TAILQ_EMPTY(&devsoftc.devq)) { in sysctl_devctl_disable()
711 n1 = TAILQ_FIRST(&devsoftc.devq); in sysctl_devctl_disable()
712 TAILQ_REMOVE(&devsoftc.devq, n1, dei_link); in sysctl_devctl_disable()
717 lockmgr(&devsoftc.lock, LK_RELEASE); in sysctl_devctl_disable()