Lines Matching refs:lqi

183 sm_setdip(queue_t *q, sm_lqi_t *lqi)  in sm_setdip()  argument
185 lqi->sm_dev = q && STREAM(q) ? STREAM(q)->sd_vnode->v_rdev : NODEV; in sm_setdip()
193 sm_lqifree(sm_lqi_t *lqi) in sm_lqifree() argument
198 ASSERT(mutex_owned(lqi->sm_umutex)); in sm_lqifree()
199 ASSERT(SM_RQ(lqi) != 0); in sm_lqifree()
213 if (lqi->sm_uqi) { in sm_lqifree()
214 sm_dbg('Y', ("lqifree unit %d, ", lqi->sm_uqi->sm_lunit)); in sm_lqifree()
215 if ((mu_owned = mutex_owned(lqi->sm_uqi->sm_umutex)) == 0) in sm_lqifree()
216 LOCK_UNIT(lqi->sm_uqi); in sm_lqifree()
218 pplqi = &lqi->sm_uqi->sm_lqs; in sm_lqifree()
219 while (*pplqi != lqi) { in sm_lqifree()
223 *pplqi = lqi->sm_nlqi; in sm_lqifree()
224 lqi->sm_uqi->sm_nlqs--; in sm_lqifree()
227 UNLOCK_UNIT(lqi->sm_uqi); in sm_lqifree()
229 lqi->sm_uqi = 0; in sm_lqifree()
241 sm_lqi_t *lqi, *flqi = 0; in get_lqi_byq() local
244 lqi = &sm_ssp->sm_lqs[i]; in get_lqi_byq()
245 LOCK_UNIT(lqi); in get_lqi_byq()
246 if (flqi == 0 && lqi->sm_linkid == 0) /* assumes muxids != 0 */ in get_lqi_byq()
247 flqi = lqi; in get_lqi_byq()
248 else if (SM_RQ(lqi) == q || SM_WQ(lqi) == q) { in get_lqi_byq()
251 return (lqi); in get_lqi_byq()
254 UNLOCK_UNIT(lqi); in get_lqi_byq()
267 sm_lqi_t *lqi; in get_lqi_byid() local
272 lqi = &sm_ssp->sm_lqs[i]; in get_lqi_byid()
273 if (lqi->sm_linkid == linkid) in get_lqi_byid()
274 return (lqi); in get_lqi_byid()
287 sm_lqi_t *lqi; in get_lqi_bydevt() local
293 lqi = &sm_ssp->sm_lqs[i]; in get_lqi_bydevt()
294 if (lqi->sm_dev == dev) in get_lqi_bydevt()
295 return (lqi); in get_lqi_bydevt()
307 sm_lqi_t *lqi; in sm_is_flag_set() local
312 for (lqi = uqi->sm_lqs; lqi; lqi = lqi->sm_nlqi) { in sm_is_flag_set()
313 if (lqi->sm_flags & flag) in sm_is_flag_set()
336 sm_lqi_t *lqi; in sm_q_count() local
339 for (lqi = uqi->sm_lqs; lqi; lqi = lqi->sm_nlqi) { in sm_q_count()
340 if ((lqi->sm_flags & flag) == 0) in sm_q_count()
353 sm_lqi_t *lqi; in sm_qs_without() local
356 for (lqi = uqi->sm_lqs; lqi; lqi = lqi->sm_nlqi) { in sm_qs_without()
357 if ((lqi->sm_flags & flag) == 0 && in sm_qs_without()
358 (lqi->sm_ioflag & ioflag) == 0) in sm_qs_without()
387 sm_lqi_t *lqi = arg; in sm_issue_ioctl() local
389 queue_t *q = SM_WQ(lqi); in sm_issue_ioctl()
392 LOCK_UNIT(lqi); in sm_issue_ioctl()
394 lqi->sm_bid = 0; in sm_issue_ioctl()
395 if ((lqi->sm_flags & (WERROR_MODE|HANGUP_MODE)) == 0 && in sm_issue_ioctl()
396 (lqi->sm_flags & (WANT_CDSTAT|WANT_TCSET))) { in sm_issue_ioctl()
399 if (lqi->sm_flags & WANT_TCSET) { in sm_issue_ioctl()
400 lqi->sm_flags &= ~WANT_TCSET; in sm_issue_ioctl()
403 } else if (lqi->sm_flags & WANT_SC) { in sm_issue_ioctl()
404 lqi->sm_flags &= ~WANT_SC; in sm_issue_ioctl()
407 } else if (lqi->sm_flags & WANT_CD) { in sm_issue_ioctl()
408 lqi->sm_flags &= ~WANT_CD; in sm_issue_ioctl()
410 } else if (lqi->sm_flags & WANT_CL) { in sm_issue_ioctl()
411 lqi->sm_flags &= ~WANT_CL; in sm_issue_ioctl()
415 UNLOCK_UNIT(lqi); in sm_issue_ioctl()
433 tc->c_cflag = lqi->sm_ttycommon-> in sm_issue_ioctl()
451 lqi->sm_piocid = ((struct iocblk *)pioc->b_rptr)-> in sm_issue_ioctl()
453 lqi->sm_flags |= SM_IOCPENDING; in sm_issue_ioctl()
456 UNLOCK_UNIT(lqi); in sm_issue_ioctl()
459 UNLOCK_UNIT(lqi); in sm_issue_ioctl()
460 lqi->sm_bid = qbufcall(WR(q), size, BPRI_MED, in sm_issue_ioctl()
461 sm_issue_ioctl, lqi); in sm_issue_ioctl()
465 UNLOCK_UNIT(lqi); in sm_issue_ioctl()
688 sm_lqi_t *lqi; in sm_senddown() local
690 for (lqi = uqi->sm_lqs; lqi != 0; lqi = lqi->sm_nlqi) { in sm_senddown()
691 if (lqi->sm_mp != 0) { in sm_senddown()
692 putnext(SM_WQ(lqi), lqi->sm_mp); in sm_senddown()
693 lqi->sm_mp = 0; in sm_senddown()
705 sm_lqi_t *lqi; in sm_dupmsg() local
708 for (lqi = uqi->sm_lqs; lqi != 0; lqi = lqi->sm_nlqi) { in sm_dupmsg()
709 lqi->sm_mp = 0; in sm_dupmsg()
710 if (lqi->sm_flags & WERROR_MODE) { in sm_dupmsg()
713 if ((lqi->sm_ioflag & (uint_t)FOROUTPUT) == 0) { in sm_dupmsg()
717 if (lqi->sm_nlqi == 0) { in sm_dupmsg()
718 lqi->sm_mp = mp; in sm_dupmsg()
720 } else if ((lqi->sm_mp = sm_copymsg(mp)) == 0) { in sm_dupmsg()
723 for (flqi = uqi->sm_lqs; flqi != lqi; in sm_dupmsg()
725 if (lqi->sm_mp) { in sm_dupmsg()
727 sm_freemsg(lqi->sm_mp); in sm_dupmsg()
728 lqi->sm_mp = 0; in sm_dupmsg()
747 register sm_lqi_t *lqi; in sm_cansenddown() local
752 for (lqi = uqi->sm_lqs; lqi != 0; lqi = lqi->sm_nlqi) { in sm_cansenddown()
753 if ((lqi->sm_flags & WERROR_MODE) == 0 && in sm_cansenddown()
754 canputnext(SM_WQ(lqi)) == 0) in sm_cansenddown()
1423 sm_lqi_t *lqi = (sm_lqi_t *)q->q_ptr; in sm_lwsrv() local
1426 LOCK_UNIT(lqi); in sm_lwsrv()
1427 if (lqi->sm_uqflags & SM_UQVALID) { in sm_lwsrv()
1437 uwq = SM_WQ(lqi->sm_uqi); in sm_lwsrv()
1438 UNLOCK_UNIT(lqi); in sm_lwsrv()
1441 UNLOCK_UNIT(lqi); in sm_lwsrv()
1652 sm_lqi_t *lqi; in sm_ursrv() local
1656 for (lqi = uqi->sm_lqs; lqi != 0; lqi = lqi->sm_nlqi) { in sm_ursrv()
1657 drq = SM_RQ(lqi)->q_next; in sm_ursrv()
1673 sm_lqi_t *lqi = (sm_lqi_t *)q->q_ptr; in sm_lrmsg_check() local
1677 LOCK_UNIT(lqi); in sm_lrmsg_check()
1683 if ((lqi->sm_ioflag & (uint_t)FORINPUT) == 0) { in sm_lrmsg_check()
1685 UNLOCK_UNIT(lqi); in sm_lrmsg_check()
1688 if ((lqi->sm_uqflags & SM_OBPCNDEV) && in sm_lrmsg_check()
1689 lqi->sm_ctrla_abort_on && in sm_lrmsg_check()
1699 if (*rxc == *lqi->sm_nachar) { in sm_lrmsg_check()
1700 lqi->sm_nachar++; in sm_lrmsg_check()
1701 if (*lqi->sm_nachar == '\0') { in sm_lrmsg_check()
1704 lqi->sm_nachar = sm_ssp->sm_abs; in sm_lrmsg_check()
1708 lqi->sm_nachar = (*rxc == *sm_ssp-> in sm_lrmsg_check()
1716 UNLOCK_UNIT(lqi); in sm_lrmsg_check()
1720 UNLOCK_UNIT(lqi); in sm_lrmsg_check()
1723 LOCK_UNIT(lqi); in sm_lrmsg_check()
1731 if ((lqi->sm_uqflags & SM_OBPCNDEV) && /* console stream */ in sm_lrmsg_check()
1735 if (lqi->sm_break_abort_on && in sm_lrmsg_check()
1740 UNLOCK_UNIT(lqi); in sm_lrmsg_check()
1743 UNLOCK_UNIT(lqi); in sm_lrmsg_check()
1753 LOCK_UNIT(lqi); /* lock out the upper half */ in sm_lrmsg_check()
1754 if ((lqi->sm_uqflags & SM_UQVALID) && SM_RQ(lqi->sm_uqi)) { in sm_lrmsg_check()
1755 UNLOCK_UNIT(lqi); in sm_lrmsg_check()
1756 if (!canput(SM_RQ(lqi->sm_uqi))) { in sm_lrmsg_check()
1762 UNLOCK_UNIT(lqi); in sm_lrmsg_check()
1774 sm_lqi_t *lqi = (sm_lqi_t *)q->q_ptr; in sm_sendup() local
1794 if ((lqi->sm_flags & SM_IOCPENDING) && lqi->sm_piocid == in sm_sendup()
1797 lqi->sm_flags &= ~SM_IOCPENDING; in sm_sendup()
1798 sm_issue_ioctl(lqi); in sm_sendup()
1808 lqi->sm_mbits |= TIOCM_CD; in sm_sendup()
1809 lqi->sm_flags &= ~(WERROR_MODE|HANGUP_MODE); in sm_sendup()
1815 lqi->sm_mbits &= ~TIOCM_CD; in sm_sendup()
1816 lqi->sm_flags |= (WERROR_MODE|HANGUP_MODE); in sm_sendup()
1831 lqi->sm_flags &= ~ERROR_MODE; in sm_sendup()
1832 lqi->sm_flags |= WANT_CD; in sm_sendup()
1837 lqi->sm_flags |= RERROR_MODE; in sm_sendup()
1843 lqi->sm_flags |= WERROR_MODE; in sm_sendup()
1856 lqi->sm_flags |= (RERROR_MODE | WERROR_MODE); in sm_sendup()
1875 LOCK_UNIT(lqi); /* lock out the upper half */ in sm_sendup()
1876 if (lqi->sm_uqflags & SM_UQVALID && SM_RQ(lqi->sm_uqi)) { in sm_sendup()
1877 UNLOCK_UNIT(lqi); in sm_sendup()
1878 (void) putq(SM_RQ(lqi->sm_uqi), mp); in sm_sendup()
1884 UNLOCK_UNIT(lqi); in sm_sendup()
2243 sm_lqi_t *lqi; in sm_open() local
2250 for (lqi = uqi->sm_lqs; lqi != 0; lqi = lqi->sm_nlqi) { in sm_open()
2251 LOCK_UNIT(lqi); in sm_open()
2252 lqi->sm_uqflags |= SM_UQVALID; in sm_open()
2253 UNLOCK_UNIT(lqi); in sm_open()
2288 sm_lqi_t *lqi; in sm_open() local
2292 for (lqi = uqi->sm_lqs; lqi != 0; in sm_open()
2293 lqi = lqi->sm_nlqi) { in sm_open()
2294 LOCK_UNIT(lqi); in sm_open()
2295 lqi->sm_uqflags &= ~SM_UQVALID; in sm_open()
2296 UNLOCK_UNIT(lqi); in sm_open()
2329 sm_lqi_t *lqi; in sm_close() local
2357 for (lqi = uqi->sm_lqs; lqi != 0; lqi = lqi->sm_nlqi) { in sm_close()
2358 LOCK_UNIT(lqi); in sm_close()
2359 lqi->sm_uqflags &= ~SM_UQVALID; in sm_close()
2360 UNLOCK_UNIT(lqi); in sm_close()