Lines Matching refs:zst

265 	struct zstty_softc *zst = (void *) self;  local
274 cf = zst->zst_dev.dv_cfdata;
276 timeout_set(&zst->zst_diag_ch, zstty_diag, zst);
278 tty_unit = zst->zst_dev.dv_unit;
281 cs->cs_private = zst;
284 zst->zst_cs = cs;
285 zst->zst_swflags = cf->cf_flags; /* softcar, etc. */
286 zst->zst_hwflags = args->hwflags;
289 if (zst->zst_swflags)
290 printf(" flags 0x%x", zst->zst_swflags);
298 if ((zst->zst_hwflags & ZS_HWFLAG_CONSOLE_INPUT) != 0) {
308 if ((zst->zst_hwflags & ZS_HWFLAG_CONSOLE_OUTPUT) != 0) {
347 zst->zst_tty = tp;
348 zst->zst_rbuf = malloc(zstty_rbuf_size << 1, M_DEVBUF, M_WAITOK);
349 zst->zst_ebuf = zst->zst_rbuf + (zstty_rbuf_size << 1);
351 zst->zst_r_hiwat = 0;
352 zst->zst_r_lowat = 0;
353 zst->zst_rbget = zst->zst_rbput = zst->zst_rbuf;
354 zst->zst_rbavail = zstty_rbuf_size;
364 if (ISSET(zst->zst_hwflags, ZS_HWFLAG_CONSOLE)) {
395 zs_modem(zst, 1);
398 } else if (!ISSET(zst->zst_hwflags, ZS_HWFLAG_NORESET)) {
409 zs_modem(zst, 0);
423 struct zstty_softc *zst; local
430 zst = zstty_cd.cd_devs[unit];
431 return (zst->zst_tty);
436 zs_shutdown(zst) in zs_shutdown() argument
437 struct zstty_softc *zst; in zs_shutdown()
439 struct zs_chanstate *cs = zst->zst_cs;
440 struct tty *tp = zst->zst_tty;
446 SET(zst->zst_rx_flags, RX_IBUF_BLOCKED);
447 zs_hwiflow(zst);
453 zst->zst_ppsmask = 0;
460 zs_modem(zst, 0);
465 if (!ISSET(zst->zst_hwflags, ZS_HWFLAG_CONSOLE)) {
477 (*cs->disable)(zst->zst_cs);
495 struct zstty_softc *zst; local
502 zst = zstty_cd.cd_devs[unit];
503 if (zst == NULL)
505 tp = zst->zst_tty;
506 cs = zst->zst_cs;
532 zst->zst_dev.dv_xname);
544 if (ISSET(zst->zst_swflags, TIOCFLAG_CLOCAL))
546 if (ISSET(zst->zst_swflags, TIOCFLAG_CRTSCTS))
548 if (ISSET(zst->zst_swflags, TIOCFLAG_MDMBUF))
562 zst->zst_ppsmask = 0;
575 if (!ISSET(zst->zst_hwflags, ZS_HWFLAG_RAW)) {
596 zs_modem(zst, 1);
599 zst->zst_rbget = zst->zst_rbput = zst->zst_rbuf;
600 zst->zst_rbavail = zstty_rbuf_size;
602 CLR(zst->zst_rx_flags, RX_ANY_BLOCK);
603 zs_hwiflow(zst);
622 zs_shutdown(zst);
638 struct zstty_softc *zst; local
642 zst = zstty_cd.cd_devs[minor(dev)];
643 cs = zst->zst_cs;
644 tp = zst->zst_tty;
659 zs_shutdown(zst);
674 struct zstty_softc *zst; local
677 zst = zstty_cd.cd_devs[minor(dev)];
678 tp = zst->zst_tty;
689 struct zstty_softc *zst; local
692 zst = zstty_cd.cd_devs[minor(dev)];
693 tp = zst->zst_tty;
709 struct zstty_softc *zst; local
715 zst = zstty_cd.cd_devs[minor(dev)];
716 cs = zst->zst_cs;
717 tp = zst->zst_tty;
747 *(int *)data = zst->zst_swflags;
754 zst->zst_swflags = *(int *)data;
758 zs_modem(zst, 1);
762 zs_modem(zst, 0);
768 tiocm_to_zs(zst, cmd, *(int *)data);
772 *(int *)data = zs_to_tiocm(zst);
792 struct zstty_softc *zst; local
796 zst = zstty_cd.cd_devs[minor(tp->t_dev)];
797 cs = zst->zst_cs;
802 if (zst->zst_tx_stopped)
825 zst->zst_tba = tba;
826 zst->zst_tbc = tbc;
830 zst->zst_tx_busy = 1;
841 zs_write_data(cs, *zst->zst_tba);
842 zst->zst_tbc--;
843 zst->zst_tba++;
857 struct zstty_softc *zst; local
861 zst = zstty_cd.cd_devs[minor(tp->t_dev)];
862 cs = zst->zst_cs;
867 zst->zst_tbc = 0;
868 zst->zst_heldtbc = 0;
886 struct zstty_softc *zst; local
892 zst = zstty_cd.cd_devs[minor(tp->t_dev)];
893 cs = zst->zst_cs;
908 if (ISSET(zst->zst_swflags, TIOCFLAG_SOFTCAR) ||
909 ISSET(zst->zst_hwflags, ZS_HWFLAG_CONSOLE)) {
948 zs_maskintr(zst);
1003 if (zst->zst_tx_busy) {
1004 zst->zst_heldtbc = zst->zst_tbc;
1005 zst->zst_tbc = 0;
1017 zst->zst_r_hiwat = 0;
1018 zst->zst_r_lowat = 0;
1019 if (ISSET(zst->zst_rx_flags, RX_TTY_OVERFLOWED)) {
1020 CLR(zst->zst_rx_flags, RX_TTY_OVERFLOWED);
1021 zst->zst_rx_ready = 1;
1024 if (ISSET(zst->zst_rx_flags, RX_TTY_BLOCKED|RX_IBUF_BLOCKED)) {
1025 CLR(zst->zst_rx_flags, RX_TTY_BLOCKED|RX_IBUF_BLOCKED);
1026 zs_hwiflow(zst);
1029 zst->zst_r_hiwat = zstty_rbuf_hiwat;
1030 zst->zst_r_lowat = zstty_rbuf_lowat;
1046 if (zst->zst_tx_stopped) {
1047 zst->zst_tx_stopped = 0;
1063 zs_maskintr(zst) in zs_maskintr() argument
1064 struct zstty_softc *zst; in zs_maskintr()
1066 struct zs_chanstate *cs = zst->zst_cs;
1070 if (zst->zst_ppsmask != 0)
1089 zs_modem(zst, onoff) in zs_modem() argument
1090 struct zstty_softc *zst; in zs_modem()
1093 struct zs_chanstate *cs = zst->zst_cs;
1104 if (zst->zst_tx_busy) {
1105 zst->zst_heldtbc = zst->zst_tbc;
1106 zst->zst_tbc = 0;
1114 tiocm_to_zs(zst, how, ttybits) in tiocm_to_zs() argument
1115 struct zstty_softc *zst; in tiocm_to_zs()
1119 struct zs_chanstate *cs = zst->zst_cs;
1144 if (zst->zst_tx_busy) {
1145 zst->zst_heldtbc = zst->zst_tbc;
1146 zst->zst_tbc = 0;
1154 zs_to_tiocm(zst) in zs_to_tiocm() argument
1155 struct zstty_softc *zst; in zs_to_tiocm()
1157 struct zs_chanstate *cs = zst->zst_cs;
1187 struct zstty_softc *zst; local
1191 zst = zstty_cd.cd_devs[minor(tp->t_dev)];
1192 cs = zst->zst_cs;
1199 if (!ISSET(zst->zst_rx_flags, RX_TTY_BLOCKED)) {
1200 SET(zst->zst_rx_flags, RX_TTY_BLOCKED);
1201 zs_hwiflow(zst);
1204 if (ISSET(zst->zst_rx_flags, RX_TTY_OVERFLOWED)) {
1205 CLR(zst->zst_rx_flags, RX_TTY_OVERFLOWED);
1206 zst->zst_rx_ready = 1;
1209 if (ISSET(zst->zst_rx_flags, RX_TTY_BLOCKED)) {
1210 CLR(zst->zst_rx_flags, RX_TTY_BLOCKED);
1211 zs_hwiflow(zst);
1223 zs_hwiflow(zst) in zs_hwiflow() argument
1224 struct zstty_softc *zst; in zs_hwiflow()
1226 struct zs_chanstate *cs = zst->zst_cs;
1231 if (ISSET(zst->zst_rx_flags, RX_ANY_BLOCK)) {
1258 struct zstty_softc *zst = cs->cs_private; local
1263 end = zst->zst_ebuf;
1264 put = zst->zst_rbput;
1265 cc = zst->zst_rbavail;
1284 put = zst->zst_rbuf;
1298 zst->zst_rbput = put;
1299 zst->zst_rbavail = cc;
1300 if (!ISSET(zst->zst_rx_flags, RX_TTY_OVERFLOWED)) {
1301 zst->zst_rx_ready = 1;
1309 if (!ISSET(zst->zst_rx_flags, RX_IBUF_BLOCKED) &&
1310 cc < zst->zst_r_hiwat) {
1311 SET(zst->zst_rx_flags, RX_IBUF_BLOCKED);
1312 zs_hwiflow(zst);
1320 SET(zst->zst_rx_flags, RX_IBUF_OVERFLOWED);
1334 struct zstty_softc *zst = cs->cs_private; local
1343 zst->zst_tbc = zst->zst_heldtbc;
1344 zst->zst_heldtbc = 0;
1348 if (zst->zst_tbc > 0) {
1349 zs_write_data(cs, *zst->zst_tba);
1350 zst->zst_tbc--;
1351 zst->zst_tba++;
1359 if (zst->zst_tx_busy) {
1360 zst->zst_tx_busy = 0;
1361 zst->zst_tx_done = 1;
1382 struct zstty_softc *zst = cs->cs_private; local
1392 if ((zst->zst_hwflags & ZS_HWFLAG_CONSOLE_INPUT) &&
1410 zst->zst_tbc = 0;
1411 zst->zst_heldtbc = 0;
1414 zst->zst_st_check = 1;
1423 struct zstty_softc *zst = arg; local
1428 overflows = zst->zst_overflows;
1429 zst->zst_overflows = 0;
1430 floods = zst->zst_floods;
1431 zst->zst_floods = 0;
1432 zst->zst_errors = 0;
1436 zst->zst_dev.dv_xname,
1442 zstty_rxsoft(zst, tp) in zstty_rxsoft() argument
1443 struct zstty_softc *zst; in zstty_rxsoft()
1446 struct zs_chanstate *cs = zst->zst_cs;
1454 end = zst->zst_ebuf;
1455 get = zst->zst_rbget;
1456 scc = cc = zstty_rbuf_size - zst->zst_rbavail;
1459 zst->zst_floods++;
1460 if (zst->zst_errors++ == 0)
1461 timeout_add(&zst->zst_diag_ch, 60 * hz);
1476 zst->zst_overflows++;
1477 if (zst->zst_errors++ == 0)
1478 timeout_add(&zst->zst_diag_ch, 60 * hz);
1489 if (!ISSET(zst->zst_rx_flags, RX_TTY_BLOCKED)) {
1509 SET(zst->zst_rx_flags, RX_TTY_OVERFLOWED);
1515 get = zst->zst_rbuf;
1520 zst->zst_rbget = get;
1522 cc = zst->zst_rbavail += scc - cc;
1524 if (cc >= zst->zst_r_lowat) {
1525 if (ISSET(zst->zst_rx_flags, RX_IBUF_OVERFLOWED)) {
1526 CLR(zst->zst_rx_flags, RX_IBUF_OVERFLOWED);
1531 if (ISSET(zst->zst_rx_flags, RX_IBUF_BLOCKED)) {
1532 CLR(zst->zst_rx_flags, RX_IBUF_BLOCKED);
1533 zs_hwiflow(zst);
1541 zstty_txsoft(zst, tp) in zstty_txsoft() argument
1542 struct zstty_softc *zst; in zstty_txsoft()
1550 ndflush(&tp->t_outq, (int)(zst->zst_tba - tp->t_outq.c_cf));
1555 zstty_stsoft(zst, tp) in zstty_stsoft() argument
1556 struct zstty_softc *zst; in zstty_stsoft()
1559 struct zs_chanstate *cs = zst->zst_cs;
1579 zst->zst_tx_stopped = 0;
1582 zst->zst_tx_stopped = 1;
1603 struct zstty_softc *zst = cs->cs_private; local
1604 struct tty *tp = zst->zst_tty;
1609 if (zst->zst_rx_ready) {
1610 zst->zst_rx_ready = 0;
1611 zstty_rxsoft(zst, tp);
1614 if (zst->zst_st_check) {
1615 zst->zst_st_check = 0;
1616 zstty_stsoft(zst, tp);
1619 if (zst->zst_tx_done) {
1620 zst->zst_tx_done = 0;
1621 zstty_txsoft(zst, tp);