Lines Matching refs:psc
114 struct pts_softc *psc = tty_softc(tp); in ptsdev_read() local
129 if (psc->pts_flags & PTS_PKT && psc->pts_pkt) { in ptsdev_read()
130 pkt = psc->pts_pkt; in ptsdev_read()
131 psc->pts_pkt = 0; in ptsdev_read()
147 if (psc->pts_flags & PTS_PKT) { in ptsdev_read()
165 if (psc->pts_flags & PTS_FINISHED) in ptsdev_read()
173 error = cv_wait_sig(&psc->pts_outwait, tp->t_mtx); in ptsdev_read()
188 struct pts_softc *psc = tty_softc(tp); in ptsdev_write() local
222 if (psc->pts_flags & PTS_FINISHED) { in ptsdev_write()
235 error = cv_wait_sig(&psc->pts_inwait, tp->t_mtx); in ptsdev_write()
261 struct pts_softc *psc = tty_softc(tp); in ptsdev_ioctl() local
326 if (psc->pts_unit < 0) in ptsdev_ioctl()
328 *(unsigned int *)data = psc->pts_unit; in ptsdev_ioctl()
366 psc->pts_flags |= PTS_PKT; in ptsdev_ioctl()
368 psc->pts_flags &= ~PTS_PKT; in ptsdev_ioctl()
388 struct pts_softc *psc = tty_softc(tp); in ptsdev_poll() local
393 if (psc->pts_flags & PTS_FINISHED) { in ptsdev_poll()
402 (psc->pts_flags & PTS_PKT && psc->pts_pkt)) in ptsdev_poll()
424 selrecord(td, &psc->pts_outpoll); in ptsdev_poll()
426 selrecord(td, &psc->pts_inpoll); in ptsdev_poll()
443 struct pts_softc *psc = tty_softc(tp); in pts_kqops_read_detach() local
445 knlist_remove(&psc->pts_outpoll.si_note, kn, 0); in pts_kqops_read_detach()
453 struct pts_softc *psc = tty_softc(tp); in pts_kqops_read_event() local
455 if (psc->pts_flags & PTS_FINISHED) { in pts_kqops_read_event()
469 struct pts_softc *psc = tty_softc(tp); in pts_kqops_write_detach() local
471 knlist_remove(&psc->pts_inpoll.si_note, kn, 0); in pts_kqops_write_detach()
479 struct pts_softc *psc = tty_softc(tp); in pts_kqops_write_event() local
481 if (psc->pts_flags & PTS_FINISHED) { in pts_kqops_write_event()
505 struct pts_softc *psc = tty_softc(tp); in ptsdev_kqfilter() local
513 knlist_add(&psc->pts_outpoll.si_note, kn, 1); in ptsdev_kqfilter()
517 knlist_add(&psc->pts_inpoll.si_note, kn, 1); in ptsdev_kqfilter()
533 struct pts_softc *psc = tty_softc(tp); in ptsdev_stat() local
548 if (psc->pts_cdev != NULL) in ptsdev_stat()
549 sb->st_ino = sb->st_rdev = dev2udev(psc->pts_cdev); in ptsdev_stat()
623 struct pts_softc *psc = tty_softc(tp); in ptsdrv_outwakeup() local
625 cv_broadcast(&psc->pts_outwait); in ptsdrv_outwakeup()
626 selwakeup(&psc->pts_outpoll); in ptsdrv_outwakeup()
627 KNOTE_LOCKED(&psc->pts_outpoll.si_note, 0); in ptsdrv_outwakeup()
633 struct pts_softc *psc = tty_softc(tp); in ptsdrv_inwakeup() local
635 cv_broadcast(&psc->pts_inwait); in ptsdrv_inwakeup()
636 selwakeup(&psc->pts_inpoll); in ptsdrv_inwakeup()
637 KNOTE_LOCKED(&psc->pts_inpoll.si_note, 0); in ptsdrv_inwakeup()
643 struct pts_softc *psc = tty_softc(tp); in ptsdrv_open() local
645 psc->pts_flags &= ~PTS_FINISHED; in ptsdrv_open()
653 struct pts_softc *psc = tty_softc(tp); in ptsdrv_close() local
656 psc->pts_flags |= PTS_FINISHED; in ptsdrv_close()
664 struct pts_softc *psc = tty_softc(tp); in ptsdrv_pktnotify() local
672 psc->pts_pkt &= ~TIOCPKT_START; in ptsdrv_pktnotify()
675 psc->pts_pkt &= ~TIOCPKT_STOP; in ptsdrv_pktnotify()
678 psc->pts_pkt &= ~TIOCPKT_DOSTOP; in ptsdrv_pktnotify()
681 psc->pts_pkt &= ~TIOCPKT_NOSTOP; in ptsdrv_pktnotify()
685 psc->pts_pkt |= event; in ptsdrv_pktnotify()
692 struct pts_softc *psc = softc; in ptsdrv_free() local
695 if (psc->pts_unit >= 0) in ptsdrv_free()
696 free_unr(pts_pool, psc->pts_unit); in ptsdrv_free()
698 chgptscnt(psc->pts_cred->cr_ruidinfo, -1, 0); in ptsdrv_free()
699 racct_sub_cred(psc->pts_cred, RACCT_NPTS, 1); in ptsdrv_free()
700 crfree(psc->pts_cred); in ptsdrv_free()
702 seldrain(&psc->pts_inpoll); in ptsdrv_free()
703 seldrain(&psc->pts_outpoll); in ptsdrv_free()
704 knlist_destroy(&psc->pts_inpoll.si_note); in ptsdrv_free()
705 knlist_destroy(&psc->pts_outpoll.si_note); in ptsdrv_free()
709 if (psc->pts_cdev != NULL) in ptsdrv_free()
710 destroy_dev_sched(psc->pts_cdev); in ptsdrv_free()
713 free(psc, M_PTS); in ptsdrv_free()
734 struct pts_softc *psc; in pts_alloc() local
762 psc = malloc(sizeof(struct pts_softc), M_PTS, M_WAITOK|M_ZERO); in pts_alloc()
763 cv_init(&psc->pts_inwait, "ptsin"); in pts_alloc()
764 cv_init(&psc->pts_outwait, "ptsout"); in pts_alloc()
766 psc->pts_unit = unit; in pts_alloc()
767 psc->pts_cred = crhold(cred); in pts_alloc()
769 tp = tty_alloc(&pts_class, psc); in pts_alloc()
770 knlist_init_mtx(&psc->pts_inpoll.si_note, tp->t_mtx); in pts_alloc()
771 knlist_init_mtx(&psc->pts_outpoll.si_note, tp->t_mtx); in pts_alloc()
774 tty_makedev(tp, td->td_ucred, "pts/%u", psc->pts_unit); in pts_alloc()
788 struct pts_softc *psc; in pts_alloc_external() local
808 psc = malloc(sizeof(struct pts_softc), M_PTS, M_WAITOK|M_ZERO); in pts_alloc_external()
809 cv_init(&psc->pts_inwait, "ptsin"); in pts_alloc_external()
810 cv_init(&psc->pts_outwait, "ptsout"); in pts_alloc_external()
812 psc->pts_unit = -1; in pts_alloc_external()
813 psc->pts_cdev = dev; in pts_alloc_external()
814 psc->pts_cred = crhold(cred); in pts_alloc_external()
816 tp = tty_alloc(&pts_class, psc); in pts_alloc_external()
817 knlist_init_mtx(&psc->pts_inpoll.si_note, tp->t_mtx); in pts_alloc_external()
818 knlist_init_mtx(&psc->pts_outpoll.si_note, tp->t_mtx); in pts_alloc_external()