Lines Matching refs:async

107 static void	async_ioctl(struct asyncline *async, queue_t *q, mblk_t *mp,
112 static void async_start(struct asyncline *async);
113 static void async_nstart(struct asyncline *async, int mode);
114 static void async_resume(struct asyncline *async);
385 struct asyncline *async; in asydetach() local
391 async = (struct asyncline *)ddi_get_soft_state(su_asyncline, instance); in asydetach()
459 cv_destroy(&async->async_flags_cv); in asydetach()
476 struct asyncline *async; in asyattach() local
511 struct asyncline *async; in asyattach() local
525 async = (struct asyncline *)asy->asy_priv; in asyattach()
526 if ((async) && (async->async_flags & ASYNC_ISOPEN)) in asyattach()
686 async = (struct asyncline *)ddi_get_soft_state(su_asyncline, instance); in asyattach()
689 async->async_common = asy; in asyattach()
690 cv_init(&async->async_flags_cv, NULL, CV_DEFAULT, NULL); in asyattach()
854 cv_destroy(&async->async_flags_cv); in asyattach()
915 struct asyncline *async; in asyopen() local
929 async = (struct asyncline *)ddi_get_soft_state(su_asyncline, unit); in asyopen()
930 if (async == NULL) in asyopen()
933 asy = async->async_common; in asyopen()
938 asy->asy_priv = (caddr_t)async; in asyopen()
945 if (!(async->async_flags & ASYNC_ISOPEN)) { in asyopen()
951 async->async_ttycommon.t_cflag = CIBAUDEXT | CBAUDEXT | in asyopen()
953 async->async_ttycommon.t_cflag |= ((B115200 << IBSHIFT) in asyopen()
955 async->async_ttycommon.t_cflag |= CS8 | CREAD | CLOCAL; in asyopen()
957 async->async_ttycommon.t_cflag = B9600 & CBAUD; in asyopen()
958 async->async_ttycommon.t_cflag |= ((B9600 << IBSHIFT) in asyopen()
960 async->async_ttycommon.t_cflag |= CS8 | CREAD | CLOCAL; in asyopen()
974 async->async_ttycommon.t_cflag = in asyopen()
983 async->async_ttycommon.t_iflag = 0; in asyopen()
984 async->async_ttycommon.t_iocpending = NULL; in asyopen()
985 async->async_ttycommon.t_size.ws_row = 0; in asyopen()
986 async->async_ttycommon.t_size.ws_col = 0; in asyopen()
987 async->async_ttycommon.t_size.ws_xpixel = 0; in asyopen()
988 async->async_ttycommon.t_size.ws_ypixel = 0; in asyopen()
989 async->async_dev = *dev; in asyopen()
990 async->async_wbufcid = 0; in asyopen()
992 async->async_startc = CSTART; in asyopen()
993 async->async_stopc = CSTOP; in asyopen()
995 } else if ((async->async_ttycommon.t_flags & TS_XCLUDE) && in asyopen()
1000 } else if ((*dev & OUTLINE) && !(async->async_flags & ASYNC_OUT)) { in asyopen()
1007 async->async_flags |= ASYNC_OUT; in asyopen()
1017 async->async_ttycommon.t_flags |= TS_SOFTCAR; in asyopen()
1018 if ((async->async_ttycommon.t_flags & TS_SOFTCAR) || in asyopen()
1020 async->async_flags |= ASYNC_CARR_ON; in asyopen()
1022 async->async_flags &= ~ASYNC_CARR_ON; in asyopen()
1030 !(async->async_ttycommon.t_cflag & CLOCAL)) { in asyopen()
1031 if (!(async->async_flags & (ASYNC_CARR_ON|ASYNC_OUT)) || in asyopen()
1032 ((async->async_flags & ASYNC_OUT) && in asyopen()
1034 async->async_flags |= ASYNC_WOPEN; in asyopen()
1035 if (cv_wait_sig(&async->async_flags_cv, in asyopen()
1037 async->async_flags &= ~ASYNC_WOPEN; in asyopen()
1041 async->async_flags &= ~ASYNC_WOPEN; in asyopen()
1044 } else if ((async->async_flags & ASYNC_OUT) && !(*dev & OUTLINE)) { in asyopen()
1055 async->async_ttycommon.t_readq = rq; in asyopen()
1056 async->async_ttycommon.t_writeq = WR(rq); in asyopen()
1057 rq->q_ptr = WR(rq)->q_ptr = (caddr_t)async; in asyopen()
1060 async->async_flags |= ASYNC_ISOPEN; in asyopen()
1061 async->async_polltid = 0; in asyopen()
1068 struct asyncline *async = arg; in async_progress_check() local
1069 struct asycom *asy = async->async_common; in async_progress_check()
1079 if (!(async->async_flags & (ASYNC_BREAK|ASYNC_DELAY|ASYNC_PROGRESS))) { in async_progress_check()
1080 async->async_ocnt = 0; in async_progress_check()
1081 async->async_flags &= ~ASYNC_BUSY; in async_progress_check()
1082 async->async_timer = 0; in async_progress_check()
1083 bp = async->async_xmitblk; in async_progress_check()
1084 async->async_xmitblk = NULL; in async_progress_check()
1094 flushq(async->async_ttycommon.t_writeq, FLUSHALL); in async_progress_check()
1095 cv_broadcast(&async->async_flags_cv); in async_progress_check()
1097 async->async_flags &= ~ASYNC_PROGRESS; in async_progress_check()
1098 async->async_timer = timeout(async_progress_check, async, in async_progress_check()
1111 struct asyncline *async; in asyclose() local
1121 async = q->q_ptr; in asyclose()
1122 ASSERT(async != NULL); in asyclose()
1123 asy = async->async_common; in asyclose()
1130 async->async_flags |= ASYNC_CLOSING; in asyclose()
1149 if (!(async->async_flags & ASYNC_BREAK)) { in asyclose()
1171 (async->async_flags & ASYNC_STOPPED)) { in asyclose()
1194 async->async_flags &= ~ASYNC_PROGRESS; in asyclose()
1195 async->async_timer = timeout(async_progress_check, async, in asyclose()
1199 while (async->async_ocnt > 0 || in asyclose()
1200 async->async_ttycommon.t_writeq->q_first != NULL || in asyclose()
1201 (async->async_flags & (ASYNC_BUSY|ASYNC_BREAK|ASYNC_DELAY))) { in asyclose()
1202 if (cv_wait_sig(&async->async_flags_cv, asy->asy_excl) == 0) in asyclose()
1205 if (async->async_timer != 0) { in asyclose()
1206 (void) untimeout(async->async_timer); in asyclose()
1207 async->async_timer = 0; in asyclose()
1214 if ((async->async_dev != rconsdev) && in asyclose()
1215 (async->async_dev != kbddev) && in asyclose()
1216 (async->async_dev != stdindev)) { in asyclose()
1220 async->async_ocnt = 0; in asyclose()
1221 if (async->async_xmitblk != NULL) in asyclose()
1222 freeb(async->async_xmitblk); in asyclose()
1223 async->async_xmitblk = NULL; in asyclose()
1231 if (!nohupcl && ((async->async_ttycommon.t_cflag & HUPCL) || in asyclose()
1232 (async->async_flags & ASYNC_WOPEN))) { in asyclose()
1249 if ((async->async_flags & (ASYNC_WOPEN|ASYNC_ISOPEN)) == 0) { in asyclose()
1258 async->async_flags = 0; in asyclose()
1259 ttycommon_close(&async->async_ttycommon); in asyclose()
1260 cv_broadcast(&async->async_flags_cv); in asyclose()
1272 if (async->async_wbufcid) { in asyclose()
1273 unbufcall(async->async_wbufcid); in asyclose()
1274 async->async_wbufcid = 0; in asyclose()
1295 async->async_ttycommon.t_readq = NULL; in asyclose()
1296 async->async_ttycommon.t_writeq = NULL; in asyclose()
1312 struct asyncline *async; in asy_isbusy() local
1318 async = (struct asyncline *)asy->asy_priv; in asy_isbusy()
1321 return ((async->async_ocnt > 0) || in asy_isbusy()
1332 struct asyncline *async; in asy_program() local
1345 async = (struct asyncline *)asy->asy_priv; in asy_program()
1347 baudrate = async->async_ttycommon.t_cflag & CBAUD; in asy_program()
1348 if (async->async_ttycommon.t_cflag & CBAUDEXT) in asy_program()
1362 async->async_ttycommon.t_cflag &= ~CBAUD & ~CBAUDEXT & in asy_program()
1365 async->async_ttycommon.t_cflag |= B9600; in asy_program()
1366 async->async_ttycommon.t_cflag |= B9600 << IBSHIFT; in asy_program()
1369 async->async_ttycommon.t_cflag |= in asy_program()
1383 if ((async->async_ttycommon.t_cflag & (CIBAUD|CIBAUDEXT)) == 0) { in asy_program()
1384 async->async_ttycommon.t_cflag |= in asy_program()
1385 (async->async_ttycommon.t_cflag & CBAUD) << IBSHIFT; in asy_program()
1386 if (async->async_ttycommon.t_cflag & CBAUDEXT) in asy_program()
1387 async->async_ttycommon.t_cflag |= CIBAUDEXT; in asy_program()
1389 if ((((async->async_ttycommon.t_cflag & CBAUD) << IBSHIFT) != in asy_program()
1390 (async->async_ttycommon.t_cflag & CIBAUD)) || in asy_program()
1391 !(((async->async_ttycommon.t_cflag & (CBAUDEXT | in asy_program()
1393 ((async->async_ttycommon.t_cflag & (CBAUDEXT | in asy_program()
1395 async->async_ttycommon.t_cflag &= ~CBAUD & ~CBAUDEXT & in asy_program()
1397 async->async_ttycommon.t_cflag |= in asy_program()
1405 c_flag = async->async_ttycommon.t_cflag & in asy_program()
1495 if ((c_flag & CLOCAL) && !(async->async_ttycommon.t_cflag & CRTSCTS)) in asy_program()
1635 struct asyncline *async; in asyintr() local
1640 async = (struct asyncline *)asy->asy_priv; in asyintr()
1641 if ((async == NULL) || in asyintr()
1642 !(async->async_flags & (ASYNC_ISOPEN|ASYNC_WOPEN))) { in asyintr()
1649 (async->async_dev == rconsdev))) in asyintr()
1737 struct asyncline *async = (struct asyncline *)asy->asy_priv; in async_txint() local
1747 if (async->async_flags & ASYNC_BREAK) in async_txint()
1759 if (async->async_ocnt > 0 && in async_txint()
1760 !(async->async_flags & (ASYNC_HW_OUT_FLW|ASYNC_STOPPED))) { in async_txint()
1762 while (fifo_len > 0 && async->async_ocnt > 0) { in async_txint()
1764 OUTB(DAT, *async->async_optr++); in async_txint()
1766 async->async_ocnt--; in async_txint()
1778 async->async_flags |= ASYNC_PROGRESS; in async_txint()
1803 struct asyncline *async = (struct asyncline *)asy->asy_priv; in async_rxint() local
1808 tp = &async->async_ttycommon; in async_rxint()
1832 (async->async_dev == rconsdev)) { in async_rxint()
1846 async->async_hw_overrun = 1; in async_rxint()
1855 if (RING_POK(async, 2)) { in async_rxint()
1856 RING_PUT(async, 0377); in async_rxint()
1857 RING_PUT(async, c); in async_rxint()
1859 async->async_sw_overrun = 1; in async_rxint()
1861 if (RING_POK(async, 1)) in async_rxint()
1862 RING_PUT(async, c); in async_rxint()
1864 async->async_sw_overrun = 1; in async_rxint()
1869 if ((async->async_dev == kbddev) || in async_rxint()
1870 ((async->async_dev == rconsdev) || in async_rxint()
1871 (async->async_dev == stdindev)) && in async_rxint()
1876 async->async_break++; in async_rxint()
1878 if (RING_POK(async, 1)) in async_rxint()
1879 RING_MARK(async, c, s); in async_rxint()
1881 async->async_sw_overrun = 1; in async_rxint()
1884 if (RING_POK(async, 1)) in async_rxint()
1885 RING_MARK(async, c, s); in async_rxint()
1887 async->async_sw_overrun = 1; in async_rxint()
1893 if ((async->async_ttycommon.t_cflag & CRTSXOFF) || in async_rxint()
1894 (async->async_ttycommon.t_iflag & IXOFF)) in async_rxint()
1895 if ((int)(RING_CNT(async)) > (RINGSIZE * 3)/4) { in async_rxint()
1899 UNIT(async->async_dev)); in async_rxint()
1901 async->async_flags |= ASYNC_HW_IN_FLOW; in async_rxint()
1902 async->async_flowc = async->async_stopc; in async_rxint()
1903 async->async_ringbuf_overflow = 1; in async_rxint()
1906 if ((async->async_flags & ASYNC_SERVICEIMM) || needsoft || in async_rxint()
1907 (RING_FRAC(async)) || (async->async_polltid == 0)) in async_rxint()
1978 struct asyncline *async = (struct asyncline *)asy->asy_priv; in async_msint() local
1997 if (async->async_ttycommon.t_cflag & CRTSCTS && !(msr & CTS)) { in async_msint()
2001 UNIT(async->async_dev)); in async_msint()
2003 async->async_flags |= ASYNC_HW_OUT_FLW; in async_msint()
2012 async->async_ext++; in async_msint()
2023 struct asyncline *async; in asysoftintr() local
2042 async = (struct asyncline *)asy->asy_priv; in asysoftintr()
2057 cc = RING_CNT(async); in asysoftintr()
2072 struct asyncline *async = (struct asyncline *)asy->asy_priv; in async_softint() local
2089 tp = &async->async_ttycommon; in async_softint()
2104 if (async->async_ttycommon.t_cflag & CRTSCTS) { in async_softint()
2105 if ((val & CTS) && (async->async_flags & ASYNC_HW_OUT_FLW)) { in async_softint()
2109 UNIT(async->async_dev)); in async_softint()
2111 async->async_flags &= ~ASYNC_HW_OUT_FLW; in async_softint()
2113 if (async->async_ocnt > 0) { in async_softint()
2115 async_resume(async); in async_softint()
2118 async_start(async); in async_softint()
2123 if (async->async_ext) { in async_softint()
2124 async->async_ext = 0; in async_softint()
2128 if ((async->async_flags & ASYNC_CARR_ON) == 0) { in async_softint()
2129 async->async_flags |= ASYNC_CARR_ON; in async_softint()
2132 if (async->async_flags & ASYNC_ISOPEN) in async_softint()
2134 cv_broadcast(&async->async_flags_cv); in async_softint()
2139 if ((async->async_flags & ASYNC_CARR_ON) && in async_softint()
2156 flushflag = (async->async_flags & in async_softint()
2161 if (async->async_xmitblk != NULL) { in async_softint()
2162 freeb(async->async_xmitblk); in async_softint()
2163 async->async_xmitblk = NULL; in async_softint()
2165 if (async->async_flags & ASYNC_BUSY) { in async_softint()
2166 async->async_ocnt = 0; in async_softint()
2167 async->async_flags &= ~ASYNC_BUSY; in async_softint()
2169 async->async_flags &= ~ASYNC_STOPPED; in async_softint()
2170 if (async->async_flags & ASYNC_ISOPEN) { in async_softint()
2177 async->async_flags &= ~ASYNC_CARR_ON; in async_softint()
2179 cv_broadcast(&async->async_flags_cv); in async_softint()
2192 if (!(async->async_flags & ASYNC_ISOPEN)) { in async_softint()
2193 RING_INIT(async); in async_softint()
2196 if ((cc = RING_CNT(async)) == 0) { in async_softint()
2202 if ((async->async_flags & ASYNC_HW_IN_FLOW) == 0) { in async_softint()
2206 UNIT(async->async_dev)); in async_softint()
2210 UNIT(async->async_dev)); in async_softint()
2214 async->async_flags |= ASYNC_HW_IN_FLOW; in async_softint()
2215 async->async_flowc = async->async_stopc; in async_softint()
2220 if (async->async_ringbuf_overflow) { in async_softint()
2221 if ((async->async_flags & ASYNC_HW_IN_FLOW) && in async_softint()
2222 ((int)(RING_CNT(async)) < (RINGSIZE/4))) { in async_softint()
2226 UNIT(async->async_dev)); in async_softint()
2229 async->async_flags &= ~ASYNC_HW_IN_FLOW; in async_softint()
2230 async->async_flowc = async->async_startc; in async_softint()
2231 async->async_ringbuf_overflow = 0; in async_softint()
2238 UNIT(async->async_dev), cc); in async_softint()
2246 if ((async->async_flags & ASYNC_HW_IN_FLOW) == 0) { in async_softint()
2247 async->async_flags |= ASYNC_HW_IN_FLOW; in async_softint()
2248 async->async_flowc = async->async_stopc; in async_softint()
2249 async->async_queue_full = 1; in async_softint()
2254 if (async->async_queue_full) { in async_softint()
2259 if (async->async_flags & ASYNC_HW_IN_FLOW) { in async_softint()
2260 async->async_flags &= ~ASYNC_HW_IN_FLOW; in async_softint()
2261 async->async_queue_full = 0; in async_softint()
2262 async->async_flowc = async->async_startc; in async_softint()
2265 async->async_queue_full = 0; in async_softint()
2269 ttycommon_qfull(&async->async_ttycommon, q); in async_softint()
2275 if (RING_ERR(async, S_ERRORS)) { in async_softint()
2276 RING_UNMARK(async); in async_softint()
2277 c = RING_GET(async); in async_softint()
2280 *bp->b_wptr++ = RING_GET(async); in async_softint()
2296 UNIT(async->async_dev)); in async_softint()
2299 if ((async->async_flags & in async_softint()
2301 async->async_flags |= in async_softint()
2303 async->async_flowc = in async_softint()
2304 async->async_stopc; in async_softint()
2305 async->async_queue_full = 1; in async_softint()
2332 if (async->async_break) { in async_softint()
2333 async->async_break = 0; in async_softint()
2334 if (async->async_flags & ASYNC_ISOPEN) { in async_softint()
2342 if ((async->async_ocnt <= 0 && (async->async_flags & ASYNC_BUSY)) || in async_softint()
2343 (async->async_flowc != '\0')) { in async_softint()
2344 async->async_flags &= ~ASYNC_BUSY; in async_softint()
2346 if (async->async_xmitblk) in async_softint()
2347 freeb(async->async_xmitblk); in async_softint()
2348 async->async_xmitblk = NULL; in async_softint()
2349 if (async->async_flags & ASYNC_ISOPEN) { in async_softint()
2352 enterq(async->async_ttycommon.t_writeq); in async_softint()
2355 async_start(async); in async_softint()
2363 if ((asy->inperim) && (async->async_flags & ASYNC_ISOPEN)) { in async_softint()
2365 leaveq(async->async_ttycommon.t_writeq); in async_softint()
2369 if (!(async->async_flags & ASYNC_BUSY)) in async_softint()
2370 cv_broadcast(&async->async_flags_cv); in async_softint()
2380 if (async->async_hw_overrun) { in async_softint()
2381 if (async->async_flags & ASYNC_ISOPEN) { in async_softint()
2386 UNIT(async->async_dev)); in async_softint()
2392 async->async_hw_overrun = 0; in async_softint()
2394 if (async->async_sw_overrun) { in async_softint()
2395 if (async->async_flags & ASYNC_ISOPEN) { in async_softint()
2400 UNIT(async->async_dev)); in async_softint()
2406 async->async_sw_overrun = 0; in async_softint()
2422 struct asyncline *async = arg; in async_restart() local
2423 struct asycom *asy = async->async_common; in async_restart()
2435 if (async->async_flags & ASYNC_BREAK) { in async_restart()
2449 rate = async->async_ttycommon.t_cflag & CBAUD; in async_restart()
2450 if (async->async_ttycommon.t_cflag & CBAUDEXT) in async_restart()
2461 async->async_flags &= ~(ASYNC_DELAY|ASYNC_BREAK|ASYNC_DRAINING); in async_restart()
2462 if ((q = async->async_ttycommon.t_writeq) != NULL) { in async_restart()
2467 async_start(async); in async_restart()
2473 cv_broadcast(&async->async_flags_cv); in async_restart()
2477 async_start(struct asyncline *async) in async_start() argument
2479 async_nstart(async, 0); in async_start()
2486 async_nstart(struct asyncline *async, int mode) in async_nstart() argument
2488 register struct asycom *asy = async->async_common; in async_nstart()
2513 if (async->async_flags & (ASYNC_BREAK|ASYNC_BUSY|ASYNC_DRAINING)) { in async_nstart()
2518 UNIT(async->async_dev), in async_nstart()
2519 async->async_flags & ASYNC_BREAK in async_nstart()
2537 if (async->async_flags & ASYNC_DELAY) { in async_nstart()
2541 UNIT(async->async_dev)); in async_nstart()
2546 if ((q = async->async_ttycommon.t_writeq) == NULL) { in async_nstart()
2550 UNIT(async->async_dev)); in async_nstart()
2578 async->async_flags |= ASYNC_BREAK; in async_nstart()
2579 (void) timeout(async_restart, async, hz / 4); in async_nstart()
2589 (void) timeout(async_restart, async, in async_nstart()
2591 async->async_flags |= ASYNC_DELAY; in async_nstart()
2611 rate = async->async_ttycommon.t_cflag & CBAUD; in async_nstart()
2612 if (async->async_ttycommon.t_cflag & CBAUDEXT) in async_nstart()
2622 async->async_flags |= ASYNC_DRAINING; in async_nstart()
2643 (void) timeout(async_restart, async, in async_nstart()
2650 async_ioctl(async, q, bp, B_FALSE); in async_nstart()
2668 if (async->async_flags & (ASYNC_HW_OUT_FLW|ASYNC_STOPPED)) { in async_nstart()
2671 async->async_flags & ASYNC_HW_OUT_FLW) in async_nstart()
2673 UNIT(async->async_dev)); in async_nstart()
2685 async->async_xmitblk = bp; in async_nstart()
2699 if ((async->async_ttycommon.t_cflag & CSIZE) == CS5) { in async_nstart()
2711 async->async_optr = xmit_addr; in async_nstart()
2712 async->async_ocnt = cc; in async_nstart()
2718 while (fifo_len-- && async->async_ocnt) { in async_nstart()
2720 OUTB(DAT, *async->async_optr++); in async_nstart()
2721 async->async_ocnt--; in async_nstart()
2727 async->async_flags |= ASYNC_PROGRESS; in async_nstart()
2728 async->async_flags |= ASYNC_BUSY; in async_nstart()
2736 async_resume(struct asyncline *async) in async_resume() argument
2738 register struct asycom *asy = async->async_common; in async_resume()
2751 } else if (async->async_ocnt > 0) { in async_resume()
2752 OUTB(DAT, *async->async_optr++); in async_resume()
2753 async->async_ocnt--; in async_resume()
2754 async->async_flags |= ASYNC_PROGRESS; in async_resume()
2766 async_ioctl(struct asyncline *async, queue_t *wq, mblk_t *mp, boolean_t iswput) in async_ioctl() argument
2768 register struct asycom *asy = async->async_common; in async_ioctl()
2769 register tty_common_t *tp = &async->async_ttycommon; in async_ioctl()
2788 freemsg(async->async_ttycommon.t_iocpending); in async_ioctl()
2789 async->async_ttycommon.t_iocpending = NULL; in async_ioctl()
2832 if (async->async_wbufcid) in async_ioctl()
2833 unbufcall(async->async_wbufcid); in async_ioctl()
2834 async->async_wbufcid = bufcall(datasize, BPRI_HI, async_reioctl, in async_ioctl()
2835 async); in async_ioctl()
3029 rate = async->async_ttycommon.t_cflag & CBAUD; in async_ioctl()
3030 if (async->async_ttycommon.t_cflag & CBAUDEXT) in async_ioctl()
3056 async->async_flags |= ASYNC_BREAK; in async_ioctl()
3074 (void) timeout(async_restart, async, hz / 4); in async_ioctl()
3079 UNIT(async->async_dev)); in async_ioctl()
3092 UNIT(async->async_dev)); in async_ioctl()
3151 if ((async->async_dev == kbddev) || in async_ioctl()
3152 (async->async_dev == rconsdev) || in async_ioctl()
3153 (async->async_dev == stdindev)) { in async_ioctl()
3264 struct asyncline *async; in asyrsrv() local
3266 async = (struct asyncline *)q->q_ptr; in asyrsrv()
3270 ASYSETSOFT(async->async_common); in asyrsrv()
3271 async->async_polltid = 0; in asyrsrv()
3288 register struct asyncline *async; in asywput() local
3292 async = (struct asyncline *)q->q_ptr; in asywput()
3293 asy = async->async_common; in asywput()
3303 async->async_flags |= ASYNC_STOPPED; in asywput()
3310 if (async->async_flags & ASYNC_STOPPED) { in asywput()
3311 async->async_flags &= ~ASYNC_STOPPED; in asywput()
3317 if (async->async_ocnt > 0) { in asywput()
3319 async_resume(async); in asywput()
3322 async_start(async); in asywput()
3343 UNIT(async->async_dev)); in asywput()
3347 async_nstart(async, 1); in asywput()
3366 async_start(async); in asywput()
3374 async_ioctl(async, q, mp, B_TRUE); in asywput()
3387 if (async->async_flags & ASYNC_BUSY) { in asywput()
3388 async->async_ocnt = 0; in asywput()
3389 async->async_flags &= ~ASYNC_BUSY; in asywput()
3403 if (async->async_xmitblk != NULL) { in asywput()
3404 freeb(async->async_xmitblk); in asywput()
3405 async->async_xmitblk = NULL; in asywput()
3430 async_start(async); in asywput()
3442 async_start(async); in asywput()
3448 async->async_flowc = async->async_stopc; in asywput()
3449 async_start(async); /* poke the start routine */ in asywput()
3456 async->async_flowc = async->async_startc; in asywput()
3457 async_start(async); /* poke the start routine */ in asywput()
3480 async->async_flags |= ASYNC_SERVICEIMM; in asywput()
3484 async->async_flags &= ~ASYNC_SERVICEIMM; in asywput()
3509 struct asyncline *async = arg; in async_reioctl() local
3510 struct asycom *asy = async->async_common; in async_reioctl()
3518 async->async_wbufcid = 0; in async_reioctl()
3519 if ((q = async->async_ttycommon.t_writeq) == NULL) { in async_reioctl()
3523 if ((mp = async->async_ttycommon.t_iocpending) != NULL) { in async_reioctl()
3525 async->async_ttycommon.t_iocpending = NULL; in async_reioctl()
3528 async_ioctl(async, q, mp, B_TRUE); in async_reioctl()
3536 struct asyncline *async = (struct asyncline *)q->q_ptr; in async_iocdata() local
3540 asy = async->async_common; in async_iocdata()
3686 struct asyncline *async; in asycheckflowcontrol_hw() local
3691 async = (struct asyncline *)asy->asy_priv; in asycheckflowcontrol_hw()
3692 ASSERT(async != NULL); in asycheckflowcontrol_hw()
3694 if (async->async_ttycommon.t_cflag & CRTSXOFF) { in asycheckflowcontrol_hw()
3696 flag = (async->async_flags & ASYNC_HW_IN_FLOW) ? 0 : RTS; in asycheckflowcontrol_hw()
3707 struct asyncline *async; in asycheckflowcontrol_sw() local
3712 async = (struct asyncline *)asy->asy_priv; in asycheckflowcontrol_sw()
3713 ASSERT(async != NULL); in asycheckflowcontrol_sw()
3715 if ((ss = async->async_flowc) != '\0' && (INB(LSR) & XHRE)) { in asycheckflowcontrol_sw()
3723 async->async_flowc = '\0'; in asycheckflowcontrol_sw()
3724 if (async->async_ttycommon.t_iflag & IXOFF) { in asycheckflowcontrol_sw()
3725 async->async_flags |= ASYNC_BUSY; in asycheckflowcontrol_sw()