Lines Matching defs:async
130 /* The async interrupt entry points */
418 struct asyncline *async;
426 async = xcp->priv;
431 if ((async->async_flags & ASYNC_ISOPEN) == 0) {
432 async->async_ttycommon.t_iflag = 0;
433 async->async_ttycommon.t_iocpending = NULL;
434 async->async_ttycommon.t_size.ws_row = 0;
435 async->async_ttycommon.t_size.ws_col = 0;
436 async->async_ttycommon.t_size.ws_xpixel = 0;
437 async->async_ttycommon.t_size.ws_ypixel = 0;
438 async->async_dev = *dev;
439 async->async_wbufcid = 0;
441 async->async_startc = CSTART;
442 async->async_stopc = CSTOP;
443 } else if ((async->async_ttycommon.t_flags & TS_XCLUDE) &&
449 async->async_ttycommon.t_flags |= TS_SOFTCAR;
451 async->async_ttycommon.t_readq = rq;
452 async->async_ttycommon.t_writeq = WR(rq);
453 rq->q_ptr = WR(rq)->q_ptr = (caddr_t)async;
461 async->async_flags |= ASYNC_ISOPEN;
474 struct asyncline *async;
480 async = (struct asyncline *)q->q_ptr;
481 ASSERT(async != NULL);
482 xcp = async->async_common;
489 async->async_flags |= ASYNC_CLOSING;
491 async->async_ocnt = 0;
492 if (async->async_xmitblk != NULL)
493 freeb(async->async_xmitblk);
494 async->async_xmitblk = NULL;
497 ttycommon_close(&async->async_ttycommon);
502 if (async->async_wbufcid != 0) {
503 unbufcall(async->async_wbufcid);
504 async->async_wbufcid = 0;
510 async->async_ttycommon.t_readq = NULL;
511 async->async_ttycommon.t_writeq = NULL;
516 async->async_flags = 0;
517 cv_broadcast(&async->async_flags_cv);
534 struct asyncline *async;
556 async = xcp->priv;
559 tp = &async->async_ttycommon;
562 if (async->async_flags & ASYNC_OUT_FLW_RESUME) {
563 xcasync_start(async);
564 async->async_flags &= ~ASYNC_OUT_FLW_RESUME;
571 if (!(async->async_flags & ASYNC_ISOPEN)) {
627 if (!(async->async_inflow_source & IN_FLOW_STREAMS)) {
634 if (async->async_inflow_source & IN_FLOW_STREAMS) {
642 ttycommon_qfull(&async->async_ttycommon, q);
653 if ((c == async->async_stopc) &&
657 } else if ((c == async->async_startc) &&
663 (async->async_flags & ASYNC_SW_OUT_FLW)) {
698 struct asyncline *async;
716 async = xcp->priv;
717 if ((async->async_flags & ASYNC_ISOPEN) != 0)
718 xcasync_start(async);
761 xcasync_start(struct asyncline *async)
763 struct xencons *xcp = async->async_common;
773 DEBUGCONT1(XENCONS_DEBUG_PROCS, "async%d_nstart\n", instance);
783 if ((q = async->async_ttycommon.t_writeq) == NULL) {
806 xcasync_ioctl(async, q, bp);
824 if (async->async_flags & (ASYNC_SW_OUT_FLW | ASYNC_STOPPED)) {
891 xcasync_ioctl(struct asyncline *async, queue_t *wq, mblk_t *mp)
893 struct xencons *xcp = async->async_common;
894 tty_common_t *tp = &async->async_ttycommon;
902 DEBUGCONT1(XENCONS_DEBUG_PROCS, "async%d_ioctl\n", instance);
912 freemsg(async->async_ttycommon.t_iocpending);
913 async->async_ttycommon.t_iocpending = NULL;
927 DEBUGCONT2(XENCONS_DEBUG_IOCTL, "async%d_ioctl: %s\n",
959 if (async->async_wbufcid)
960 unbufcall(async->async_wbufcid);
961 async->async_wbufcid = bufcall(datasize, BPRI_HI,
963 (void *)(intptr_t)async->async_common->unit);
1067 DEBUGCONT1(XENCONS_DEBUG_PROCS, "async%d_ioctl: done\n", instance);
1094 struct asyncline *async;
1097 async = (struct asyncline *)q->q_ptr;
1098 xcp = async->async_common;
1104 async->async_flags |= ASYNC_STOPPED;
1111 if (async->async_flags & ASYNC_STOPPED) {
1112 async->async_flags &= ~ASYNC_STOPPED;
1113 xcasync_start(async);
1136 xcasync_start(async);
1144 xcasync_ioctl(async, q, mp);
1156 if (async->async_xmitblk != NULL) {
1157 freeb(async->async_xmitblk);
1158 async->async_xmitblk = NULL;
1175 xcasync_start(async);
1188 xcasync_start(async);
1195 if (!(async->async_inflow_source & IN_FLOW_USER)) {
1207 if (async->async_inflow_source & IN_FLOW_USER) {
1241 struct asyncline *async;
1248 async = xcp->priv;
1254 async->async_wbufcid = 0;
1255 if ((q = async->async_ttycommon.t_writeq) == NULL) {
1259 if ((mp = async->async_ttycommon.t_iocpending) != NULL) {
1261 async->async_ttycommon.t_iocpending = NULL;
1263 xcasync_ioctl(async, q, mp);
1432 struct asyncline *async = xcp->priv;
1437 if (!(async->async_ttycommon.t_iflag & IXON))
1442 async->async_flags |= ASYNC_SW_OUT_FLW;
1443 async->async_flags &= ~ASYNC_OUT_FLW_RESUME;
1448 async->async_flags &= ~ASYNC_SW_OUT_FLW;
1449 async->async_flags |= ASYNC_OUT_FLW_RESUME;
1478 struct asyncline *async = xcp->priv;
1484 if (!(async->async_ttycommon.t_iflag & IXOFF))
1492 async->async_inflow_source |= type;
1501 if (async->async_inflow_source & (IN_FLOW_STREAMS |
1503 async->async_flags |= ASYNC_SW_IN_FLOW |
1506 "type = %x\n", instance, async->async_inflow_source);
1509 async->async_inflow_source &= ~type;
1510 if (async->async_inflow_source == 0) {
1511 async->async_flags = (async->async_flags &
1521 if (async->async_flags & ASYNC_SW_IN_NEEDED) {
1529 c = (async->async_flags & ASYNC_SW_IN_FLOW) ?
1530 async->async_stopc : async->async_startc;
1533 async->async_flags &= ~ASYNC_SW_IN_NEEDED;