Lines Matching refs:tp
100 static void ptcwakeup(struct tty *tp, int flag);
272 struct tty *tp = pti->pt_tty; in ptsopen() local
273 tty_lock(tp); in ptsopen()
275 if ((tp->t_state & TS_ISOPEN) == 0) { in ptsopen()
276 termioschars(&tp->t_termios); /* Set up default chars */ in ptsopen()
277 tp->t_iflag = TTYDEF_IFLAG; in ptsopen()
278 tp->t_oflag = TTYDEF_OFLAG; in ptsopen()
279 tp->t_lflag = TTYDEF_LFLAG; in ptsopen()
280 tp->t_cflag = TTYDEF_CFLAG; in ptsopen()
281 tp->t_ispeed = tp->t_ospeed = TTYDEF_SPEED; in ptsopen()
282 ttsetwater(tp); /* would be done in xxparam() */ in ptsopen()
283 } else if ((tp->t_state & TS_XCLUDE) && kauth_cred_issuser(kauth_cred_get())) { in ptsopen()
287 if (tp->t_oproc) { /* Ctrlr still around. */ in ptsopen()
288 (void)(*linesw[tp->t_line].l_modem)(tp, 1); in ptsopen()
290 while ((tp->t_state & TS_CARR_ON) == 0) { in ptsopen()
294 error = ttysleep(tp, TSA_CARR_ON(tp), TTIPRI | PCATCH, __FUNCTION__, 0); in ptsopen()
299 error = (*linesw[tp->t_line].l_open)(dev, tp); in ptsopen()
303 CLR(tp->t_state, TS_IOCTL_NOT_OK); in ptsopen()
305 ptcwakeup(tp, FREAD | FWRITE); in ptsopen()
309 tty_unlock(tp); in ptsopen()
335 struct tty *tp; in ptsclose() local
341 tp = pti->pt_tty; in ptsclose()
342 tty_lock(tp); in ptsclose()
344 save_timeout = tp->t_timeout; in ptsclose()
345 tp->t_timeout = 60; in ptsclose()
350 err = (*linesw[tp->t_line].l_close)(tp, flag); in ptsclose()
351 (void)ttyclose(tp); in ptsclose()
356 ptsstop(tp, FREAD | FWRITE); in ptsclose()
358 tp->t_timeout = save_timeout; in ptsclose()
360 tty_unlock(tp); in ptsclose()
363 driver->revoke(minor(dev), tp); in ptsclose()
375 struct tty *tp; in ptsread() local
382 tp = pti->pt_tty; in ptsread()
383 tty_lock(tp); in ptsread()
386 if (tp->t_oproc) { in ptsread()
387 error = (*linesw[tp->t_line].l_read)(tp, uio, flag); in ptsread()
389 ptcwakeup(tp, FWRITE); in ptsread()
390 tty_unlock(tp); in ptsread()
403 struct tty *tp; in ptswrite() local
409 tp = pti->pt_tty; in ptswrite()
410 tty_lock(tp); in ptswrite()
412 if (tp->t_oproc == 0) { in ptswrite()
415 error = (*linesw[tp->t_line].l_write)(tp, uio, flag); in ptswrite()
418 tty_unlock(tp); in ptswrite()
432 ptsstart(struct tty *tp) in ptsstart() argument
434 struct ptmx_ioctl *pti = pty_get_ioctl(tp->t_dev, 0, NULL); in ptsstart()
438 if (tp->t_state & TS_TTSTOP) { in ptsstart()
445 ptcwakeup(tp, FREAD); in ptsstart()
464 ptcwakeup(struct tty *tp, int flag) in ptcwakeup() argument
466 struct ptmx_ioctl *pti = pty_get_ioctl(tp->t_dev, 0, NULL); in ptcwakeup()
473 wakeup(TSA_PTC_READ(tp)); in ptcwakeup()
478 wakeup(TSA_PTC_WRITE(tp)); in ptcwakeup()
494 struct tty *tp = pti->pt_tty; in ptcopen() local
495 tty_lock(tp); in ptcopen()
498 if (tp->t_oproc || (tp->t_state & TS_ISOPEN)) { in ptcopen()
499 tty_unlock(tp); in ptcopen()
504 if (!tp->t_oproc) { in ptcopen()
509 tp->t_oproc = ptsstart; in ptcopen()
510 CLR(tp->t_state, TS_ZOMBIE); in ptcopen()
511 SET(tp->t_state, TS_IOCTL_NOT_OK); in ptcopen()
513 tp->t_stop = ptsstop; in ptcopen()
515 (void)(*linesw[tp->t_line].l_modem)(tp, 1); in ptcopen()
516 tp->t_lflag &= ~EXTPROC; in ptcopen()
524 tty_unlock(tp); in ptcopen()
533 struct tty *tp; in ptcclose() local
541 tp = pti->pt_tty; in ptcclose()
542 tty_lock(tp); in ptcclose()
546 if (constty == tp) { in ptcclose()
549 if (freetp == tp) { in ptcclose()
563 (*cdevsw[major(tp->t_dev)].d_ioctl) in ptcclose()
564 (tp->t_dev, KMIOCDISABLCONS, NULL, 0, current_proc()); in ptcclose()
568 if (constty == tp) { in ptcclose()
583 (void)(*linesw[tp->t_line].l_modem)(tp, 0); in ptcclose()
584 if (tp->t_state & TS_ISOPEN) { in ptcclose()
585 tp->t_state &= ~(TS_CARR_ON | TS_CONNECTED); in ptcclose()
586 tp->t_state |= TS_ZOMBIE; in ptcclose()
587 ttyflush(tp, FREAD | FWRITE); in ptcclose()
594 tp->t_oproc = NULL; in ptcclose()
604 tty_unlock(tp); in ptcclose()
608 mac_pty_notify_close(p, tp, dev, NULL); in ptcclose()
620 struct tty *tp; local
627 tp = pti->pt_tty;
628 tty_lock(tp);
637 if (tp->t_state & TS_ISOPEN) {
648 termios64to32((struct user_termios *)&tp->t_termios,
655 termios32to64((struct termios32 *)&tp->t_termios,
660 cc = MIN((int)uio_resid(uio), (int)sizeof(tp->t_termios));
661 uiomove((caddr_t)&tp->t_termios, cc, uio);
675 if (tp->t_outq.c_cc && (tp->t_state & TS_TTSTOP) == 0) {
679 if ((tp->t_state & TS_CONNECTED) == 0) {
686 error = ttysleep(tp, TSA_PTC_READ(tp), TTIPRI | PCATCH, __FUNCTION__, 0);
695 cc = q_to_b(&tp->t_outq, (u_char *)buf, MIN((int)uio_resid(uio), BUFSIZ));
701 (*linesw[tp->t_line].l_start)(tp);
704 tty_unlock(tp);
715 ptsstop(struct tty* tp, int flush) argument
717 struct ptmx_ioctl *pti = pty_get_ioctl(tp->t_dev, 0, NULL);
740 ptcwakeup(tp, flag);
754 struct tty *tp; local
760 tp = pti->pt_tty;
761 if (tp == NULL) {
765 tty_lock(tp);
769 if (ISSET(tp->t_state, TS_ZOMBIE)) {
774 retval = ttnread(tp);
779 selrecord(p, &tp->t_rsel, wql);
782 if (ISSET(tp->t_state, TS_ZOMBIE)) {
787 if ((tp->t_outq.c_cc <= tp->t_lowat) &&
788 ISSET(tp->t_state, TS_CONNECTED)) {
789 retval = tp->t_hiwat - tp->t_outq.c_cc;
793 selrecord(p, &tp->t_wsel, wql);
797 tty_unlock(tp);
806 struct tty *tp; local
812 tp = pti->pt_tty;
813 tty_lock(tp);
815 if ((tp->t_state & TS_CONNECTED) == 0) {
824 if ((tp->t_state & TS_ISOPEN) &&
825 tp->t_outq.c_cc && (tp->t_state & TS_TTSTOP) == 0) {
826 retval = (driver->fix_7828447) ? tp->t_outq.c_cc : 1;
832 if ((tp->t_state & TS_ISOPEN) &&
843 if (tp->t_state & TS_ISOPEN) {
844 retval = (TTYHOG - 2) - (tp->t_rawq.c_cc + tp->t_canq.c_cc);
849 if (tp->t_canq.c_cc == 0 && (tp->t_lflag & ICANON)) {
859 tty_unlock(tp);
865 ptcstop(__unused struct tty *tp, __unused int flush) argument
880 struct tty *tp; local
890 tp = pti->pt_tty;
891 tty_lock(tp);
894 if ((tp->t_state & TS_ISOPEN) == 0) {
906 if ((tp->t_state & TS_ISOPEN) == 0) {
914 if ((tp->t_rawq.c_cc + tp->t_canq.c_cc) >= TTYHOG - 2 &&
915 (tp->t_canq.c_cc > 0 || !(tp->t_lflag & ICANON))) {
916 wakeup(TSA_HUP_OR_INPUT(tp));
919 OS_ANALYZER_SUPPRESS("80961525") (*linesw[tp->t_line].l_rint)(*cp++, tp);
926 tty_unlock(tp);
935 if ((tp->t_state & TS_CONNECTED) == 0) {
949 error = ttysleep(tp, TSA_PTC_WRITE(tp), TTOPRI | PCATCH, __FUNCTION__, 0);
966 struct tty *tp; local
978 tp = pti->pt_tty;
979 tty_lock(tp);
981 u_char *cc = tp->t_cc;
989 ISSET(tp->t_state, TS_IOCTL_NOT_OK)) {
1006 ptcwakeup(tp, FREAD);
1008 tp->t_lflag |= EXTPROC;
1010 if ((tp->t_lflag & EXTPROC) &&
1013 ptcwakeup(tp, FREAD);
1015 tp->t_lflag &= ~EXTPROC;
1025 *(int *)data = tp->t_pgrp ? tp->t_pgrp->pg_id : 0;
1061 ndflush(&tp->t_outq, tp->t_outq.c_cc);
1070 if ((tp->t_lflag & NOFLSH) == 0) {
1071 ttyflush(tp, FREAD | FWRITE);
1074 ((tp->t_lflag & NOKERNINFO) == 0)) {
1075 ttyinfo_locked(tp);
1083 tty_pgsignal_locked(tp, *(unsigned int *)data, 1);
1098 tty_unlock(tp);
1099 mac_pty_notify_grant(p, tp, dev, NULL);
1100 tty_lock(tp);
1142 error = ttioctl_locked(tp, cmd, data, flag, p);
1156 error = (*linesw[tp->t_line].l_ioctl)(tp, cmd, data, flag, p);
1158 error = ttioctl_locked(tp, cmd, data, flag, p);
1164 ptcwakeup(tp, FREAD);
1186 if ((tp->t_lflag & EXTPROC) && (pti->pt_flags & PF_PKT)) {
1202 ptcwakeup(tp, FREAD);
1208 stop = (tp->t_iflag & IXON) && CCEQ(cc[VSTOP], CTRL('s'))
1215 ptcwakeup(tp, FREAD);
1222 ptcwakeup(tp, FREAD);
1226 tty_unlock(tp);