Lines Matching refs:plqi

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