Lines Matching refs:plqi
472 sm_associate(int unit, sm_lqi_t *plqi, ulong_t tag, uint_t ioflag, char *dp) in sm_associate() argument
478 (plqi) ? plqi->sm_linkid : 0, unit, ioflag)); in sm_associate()
484 if (unit < 0 || unit >= NLUNITS || plqi == 0 || in sm_associate()
486 sm_dbg('@', (" invalid: lqi=0x%p lui=0x%p:", plqi, uqi)); in sm_associate()
492 LOCK_UNIT(plqi); in sm_associate()
494 if (plqi->sm_uqi) { in sm_associate()
495 if (plqi->sm_uqi->sm_lunit == unit) { in sm_associate()
497 plqi->sm_ioflag = in sm_associate()
502 plqi->sm_uqi->sm_lunit)); in sm_associate()
510 plqi->sm_ioflag = (ioflag & (uint_t)FORIO); in sm_associate()
512 plqi->sm_ttycommon->t_cflag = uqi->sm_ttycommon-> in sm_associate()
514 plqi->sm_ttycommon->t_flags = uqi->sm_ttycommon-> in sm_associate()
516 plqi->sm_uqi = uqi; in sm_associate()
517 plqi->sm_mbits = 0; in sm_associate()
518 plqi->sm_tag = tag; in sm_associate()
521 (void) strncpy(plqi->sm_path, dp, MAXPATHLEN); in sm_associate()
523 *(plqi->sm_path) = '\0'; in sm_associate()
525 plqi->sm_flags |= WANT_TCSET; in sm_associate()
527 plqi->sm_nlqi = uqi->sm_lqs; in sm_associate()
528 uqi->sm_lqs = plqi; in sm_associate()
530 plqi->sm_nlqi = 0; in sm_associate()
536 lq->sm_nlqi = plqi; in sm_associate()
538 uqi->sm_lqs = plqi; in sm_associate()
542 (void) ttymux_device_init(plqi); in sm_associate()
555 plqi->sm_uqflags |= SM_UQVALID; in sm_associate()
557 qenable(SM_RQ(plqi)); in sm_associate()
558 if (plqi->sm_flags & (WANT_CDSTAT|WANT_TCSET)) { in sm_associate()
564 UNLOCK_UNIT(plqi); in sm_associate()
565 if (plqi->sm_bid) { in sm_associate()
566 qunbufcall(SM_WQ(plqi), plqi->sm_bid); in sm_associate()
567 plqi->sm_bid = 0; in sm_associate()
573 sm_issue_ioctl(plqi); in sm_associate()
574 LOCK_UNIT(plqi); in sm_associate()
579 UNLOCK_UNIT(plqi); in sm_associate()
590 sm_disassociate(int unit, sm_lqi_t *plqi, ulong_t tag) in sm_disassociate() argument
596 (plqi) ? plqi->sm_linkid : 0, unit)); in sm_disassociate()
601 if (unit < 0 || unit >= NLUNITS || plqi == 0 || in sm_disassociate()
603 sm_dbg('@', ("invalid: lqi=0x%p lui=0x%p", plqi, uqi)); in sm_disassociate()
606 LOCK_UNIT(plqi); in sm_disassociate()
608 if (plqi->sm_uqi == NULL) { in sm_disassociate()
611 } else if (plqi->sm_uqi->sm_lunit != unit) { in sm_disassociate()
613 plqi->sm_uqi->sm_lunit)); in sm_disassociate()
615 } else if (plqi->sm_tag != tag) { in sm_disassociate()
622 (void) ttymux_device_fini(plqi); in sm_disassociate()
629 plqi->sm_flags &= ~(WANT_CDSTAT|WANT_TCSET); in sm_disassociate()
630 plqi->sm_uqflags &= ~(SM_UQVALID|SM_OBPCNDEV); in sm_disassociate()
631 plqi->sm_ioflag = 0u; in sm_disassociate()
633 sm_lqifree(plqi); in sm_disassociate()
636 UNLOCK_UNIT(plqi); in sm_disassociate()
807 sm_lqi_t *plqi; in sm_link_req() local
832 } else if ((plqi = get_lqi_byq(linkp->l_qbot)) == 0) { in sm_link_req()
835 } else if (plqi->sm_uqi) { in sm_link_req()
836 UNLOCK_UNIT(plqi); /* was aquired by get_lqi_byq */ in sm_link_req()
840 SM_WQ(plqi) = linkp->l_qbot; in sm_link_req()
841 SM_RQ(plqi) = OTHERQ(linkp->l_qbot); in sm_link_req()
844 OTHERQ(linkp->l_qbot)->q_ptr = plqi; in sm_link_req()
845 plqi->sm_linkid = linkp->l_index; in sm_link_req()
846 UNLOCK_UNIT(plqi); /* was aquired by get_lqi_byq */ in sm_link_req()
851 sm_setdip(linkp->l_qbot, plqi); in sm_link_req()
852 plqi->sm_ttycommon->t_flags = 0; in sm_link_req()
853 plqi->sm_ttycommon->t_cflag = 0; in sm_link_req()
854 plqi->sm_mbits = 0; in sm_link_req()
855 (void) ttymux_device_init(plqi); in sm_link_req()
871 } else if ((plqi = get_lqi_byid(linkp->l_index)) == 0) { in sm_link_req()
883 if (plqi->sm_bid) { in sm_link_req()
884 qunbufcall(SM_RQ(plqi), plqi->sm_bid); in sm_link_req()
885 plqi->sm_bid = 0; in sm_link_req()
887 if (plqi->sm_ttybid) { in sm_link_req()
888 qunbufcall(SM_RQ(plqi), plqi->sm_ttybid); in sm_link_req()
889 plqi->sm_ttybid = 0; in sm_link_req()
892 uqi = plqi->sm_uqi; in sm_link_req()
895 (void) ttymux_device_fini(plqi); in sm_link_req()
899 plqi, plqi->sm_tag); in sm_link_req()
901 LOCK_UNIT(plqi); in sm_link_req()
903 plqi->sm_piocid = 0; in sm_link_req()
905 werrmode = (plqi->sm_flags & (WERROR_MODE|HANGUP_MODE)) in sm_link_req()
908 plqi->sm_mbits = 0; in sm_link_req()
909 plqi->sm_flags = 0; in sm_link_req()
911 ttycommon_close(plqi->sm_ttycommon); in sm_link_req()
913 plqi->sm_ttycommon->t_flags = 0; in sm_link_req()
914 plqi->sm_ttycommon->t_cflag = 0; in sm_link_req()
915 plqi->sm_ttycommon->t_iflag = 0; in sm_link_req()
916 plqi->sm_linkid = 0; in sm_link_req()
917 plqi->sm_dev = NODEV; in sm_link_req()
918 plqi->sm_hadkadbchar = 0; in sm_link_req()
919 plqi->sm_nachar = sm_ssp->sm_abs; in sm_link_req()
921 UNLOCK_UNIT(plqi); in sm_link_req()
1095 sm_lqi_t *plqi; in sm_hp_uwput() local
1129 for (plqi = uqi->sm_lqs; plqi != 0; plqi = plqi->sm_nlqi) { in sm_hp_uwput()
1130 if ((plqi->sm_flags & WERROR_MODE) == 0 && in sm_hp_uwput()
1131 SM_WQ(plqi)) { in sm_hp_uwput()
1132 sm_dbg('I', ("flush lq 0x%p\n", SM_WQ(plqi))); in sm_hp_uwput()
1134 flushq(SM_WQ(plqi), FLUSHDATA); in sm_hp_uwput()
1135 (void) putnextctl1(SM_WQ(plqi), M_FLUSH, in sm_hp_uwput()
1142 for (plqi = uqi->sm_lqs; plqi != 0; plqi = plqi->sm_nlqi) { in sm_hp_uwput()
1143 plqi->sm_flags &= ~SM_ISTOPPED; in sm_hp_uwput()
1144 if ((plqi->sm_flags & WERROR_MODE) == 0) in sm_hp_uwput()
1145 (void) putnextctl(SM_WQ(plqi), msgtype); in sm_hp_uwput()
1150 for (plqi = uqi->sm_lqs; plqi != 0; plqi = plqi->sm_nlqi) { in sm_hp_uwput()
1151 plqi->sm_flags |= SM_ISTOPPED; in sm_hp_uwput()
1152 if ((plqi->sm_flags & WERROR_MODE) == 0) in sm_hp_uwput()
1153 (void) putnextctl(SM_WQ(plqi), msgtype); in sm_hp_uwput()
1160 for (plqi = uqi->sm_lqs; plqi != 0; plqi = plqi->sm_nlqi) in sm_hp_uwput()
1161 if ((plqi->sm_flags & WERROR_MODE) == 0) in sm_hp_uwput()
1162 (void) putnextctl(SM_WQ(plqi), msgtype); in sm_hp_uwput()
1171 for (plqi = uqi->sm_lqs; plqi != 0; plqi = plqi->sm_nlqi) in sm_hp_uwput()
1172 if ((plqi->sm_flags & WERROR_MODE) == 0) in sm_hp_uwput()
1173 (void) putnextctl(SM_WQ(plqi), msgtype); in sm_hp_uwput()