summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1995-07-31 22:48:46 +0000
committerbde <bde@FreeBSD.org>1995-07-31 22:48:46 +0000
commit41051c44b5f8cd2912590dc64a0a63e51651124c (patch)
tree1ec1d8fd08608dbfac04e1738efcb15f57d7af22 /sys
parent14ef24d99e1fcd7017a814b5def77ca5a727d336 (diff)
downloadFreeBSD-src-41051c44b5f8cd2912590dc64a0a63e51651124c.zip
FreeBSD-src-41051c44b5f8cd2912590dc64a0a63e51651124c.tar.gz
Obtained from: partly from ancient patches of mine via 1.1.5
Handle MDMBUF a little better. Prepare to handle 4 different kinds of output flow control.
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/tty.c8
-rw-r--r--sys/sys/tty.h9
2 files changed, 14 insertions, 3 deletions
diff --git a/sys/kern/tty.c b/sys/kern/tty.c
index f271101..7db76e1 100644
--- a/sys/kern/tty.c
+++ b/sys/kern/tty.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)tty.c 8.8 (Berkeley) 1/21/94
- * $Id: tty.c,v 1.63 1995/07/31 21:01:23 bde Exp $
+ * $Id: tty.c,v 1.64 1995/07/31 21:43:37 bde Exp $
*/
/*-
@@ -1297,11 +1297,15 @@ ttymodem(tp, flag)
if (ISSET(tp->t_state, TS_CARR_ON) && ISSET(tp->t_cflag, MDMBUF)) {
/*
* MDMBUF: do flow control according to carrier flag
+ * XXX TS_CAR_OFLOW doesn't do anything yet. TS_TTSTOP
+ * works if IXON and IXANY are clear.
*/
if (flag) {
+ CLR(tp->t_state, TS_CAR_OFLOW);
CLR(tp->t_state, TS_TTSTOP);
ttstart(tp);
- } else if (!ISSET(tp->t_state, TS_TTSTOP)) {
+ } else if (!ISSET(tp->t_state, TS_CAR_OFLOW)) {
+ SET(tp->t_state, TS_CAR_OFLOW);
SET(tp->t_state, TS_TTSTOP);
#ifdef sun4c /* XXX */
(*tp->t_stop)(tp, 0);
diff --git a/sys/sys/tty.h b/sys/sys/tty.h
index e3206ff..99568d4 100644
--- a/sys/sys/tty.h
+++ b/sys/sys/tty.h
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* @(#)tty.h 8.6 (Berkeley) 1/21/94
- * $Id: tty.h,v 1.28 1995/07/31 19:17:19 bde Exp $
+ * $Id: tty.h,v 1.29 1995/07/31 21:02:00 bde Exp $
*/
#ifndef _SYS_TTY_H_
@@ -159,6 +159,13 @@ struct tty {
#define TS_SO_OCOMPLETE 0x080000 /* Wake up when output completes. */
#define TS_ZOMBIE 0x100000 /* Connection lost. */
+/* Hardware flow-control-invoked bits. */
+#define TS_CAR_OFLOW 0x200000 /* For MDMBUF (XXX handle in driver). */
+#ifdef notyet
+#define TS_CTS_OFLOW 0x400000 /* For CCTS_OFLOW. */
+#define TS_DSR_OFLOW 0x800000 /* For CDSR_OFLOW. */
+#endif
+
/* Character type information. */
#define ORDINARY 0
#define CONTROL 1
OpenPOWER on IntegriCloud