Add support for DTR/CTS flow control, from Bill Studenmund.

This commit is contained in:
scottr 1997-10-20 08:07:47 +00:00
parent f0b7604760
commit 94cf433266
15 changed files with 107 additions and 45 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: key.c,v 1.12 1997/07/20 21:31:24 christos Exp $ */ /* $NetBSD: key.c,v 1.13 1997/10/20 08:08:01 scottr Exp $ */
/*- /*-
* Copyright (c) 1991, 1993, 1994 * Copyright (c) 1991, 1993, 1994
@ -38,7 +38,7 @@
#if 0 #if 0
static char sccsid[] = "@(#)key.c 8.4 (Berkeley) 2/20/95"; static char sccsid[] = "@(#)key.c 8.4 (Berkeley) 2/20/95";
#else #else
__RCSID("$NetBSD: key.c,v 1.12 1997/07/20 21:31:24 christos Exp $"); __RCSID("$NetBSD: key.c,v 1.13 1997/10/20 08:08:01 scottr Exp $");
#endif #endif
#endif /* not lint */ #endif /* not lint */
@ -271,7 +271,7 @@ f_sane(ip)
struct info *ip; struct info *ip;
{ {
ip->t.c_cflag = TTYDEF_CFLAG | (ip->t.c_cflag & (CLOCAL|CRTSCTS)); ip->t.c_cflag = TTYDEF_CFLAG | (ip->t.c_cflag & (CLOCAL|CRTSCTS|CDTRCTS));
ip->t.c_iflag = TTYDEF_IFLAG; ip->t.c_iflag = TTYDEF_IFLAG;
ip->t.c_iflag |= ICRNL; ip->t.c_iflag |= ICRNL;
/* preserve user-preference flags in lflag */ /* preserve user-preference flags in lflag */

View File

@ -1,4 +1,4 @@
/* $NetBSD: modes.c,v 1.11 1997/07/20 21:31:25 christos Exp $ */ /* $NetBSD: modes.c,v 1.12 1997/10/20 08:08:04 scottr Exp $ */
/*- /*-
* Copyright (c) 1991, 1993, 1994 * Copyright (c) 1991, 1993, 1994
@ -38,7 +38,7 @@
#if 0 #if 0
static char sccsid[] = "@(#)modes.c 8.3 (Berkeley) 4/2/94"; static char sccsid[] = "@(#)modes.c 8.3 (Berkeley) 4/2/94";
#else #else
__RCSID("$NetBSD: modes.c,v 1.11 1997/07/20 21:31:25 christos Exp $"); __RCSID("$NetBSD: modes.c,v 1.12 1997/10/20 08:08:04 scottr Exp $");
#endif #endif
#endif /* not lint */ #endif /* not lint */
@ -89,6 +89,8 @@ const struct modes cmodes[] = {
{ "-crtscts", 0, CRTSCTS }, { "-crtscts", 0, CRTSCTS },
{ "mdmbuf", MDMBUF, 0 }, { "mdmbuf", MDMBUF, 0 },
{ "-mdmbuf", 0, MDMBUF }, { "-mdmbuf", 0, MDMBUF },
{ "cdtrcts", CDTRCTS, 0 },
{ "-cdtrcts", 0, CDTRCTS },
{ NULL }, { NULL },
}; };

View File

@ -1,4 +1,4 @@
/* $NetBSD: print.c,v 1.13 1997/07/20 21:31:26 christos Exp $ */ /* $NetBSD: print.c,v 1.14 1997/10/20 08:08:07 scottr Exp $ */
/*- /*-
* Copyright (c) 1991, 1993, 1994 * Copyright (c) 1991, 1993, 1994
@ -38,7 +38,7 @@
#if 0 #if 0
static char sccsid[] = "@(#)print.c 8.6 (Berkeley) 4/16/94"; static char sccsid[] = "@(#)print.c 8.6 (Berkeley) 4/16/94";
#else #else
__RCSID("$NetBSD: print.c,v 1.13 1997/07/20 21:31:26 christos Exp $"); __RCSID("$NetBSD: print.c,v 1.14 1997/10/20 08:08:07 scottr Exp $");
#endif #endif
#endif /* not lint */ #endif /* not lint */
@ -177,6 +177,7 @@ print(tp, wp, ldisc, fmt)
put("-cstopb", CSTOPB, 0); put("-cstopb", CSTOPB, 0);
put("-crtscts", CRTSCTS, 0); put("-crtscts", CRTSCTS, 0);
put("-mdmbuf", MDMBUF, 0); put("-mdmbuf", MDMBUF, 0);
put("-cdtrcts", CDTRCTS, 0);
/* special control characters */ /* special control characters */
cc = tp->c_cc; cc = tp->c_cc;

View File

@ -1,4 +1,4 @@
.\" $NetBSD: stty.1,v 1.14 1997/04/02 03:13:17 kleink Exp $ .\" $NetBSD: stty.1,v 1.15 1997/10/20 08:08:10 scottr Exp $
.\" .\"
.\" Copyright (c) 1990, 1993, 1994 .\" Copyright (c) 1990, 1993, 1994
.\" The Regents of the University of California. All rights reserved. .\" The Regents of the University of California. All rights reserved.
@ -149,6 +149,8 @@ Assume a line without (with) modem
control. control.
.It Cm crtscts Pq Fl crtscts .It Cm crtscts Pq Fl crtscts
Enable RTS/CTS flow control. Enable RTS/CTS flow control.
.It Cm cdtrcts Pq Fl cdtrcts
Enable DTR/CTS flow control (if supported).
.El .El
.Ss Input Modes: .Ss Input Modes:
This corresponds to the c_iflag in the termios structure. This corresponds to the c_iflag in the termios structure.

View File

@ -1,4 +1,4 @@
.\" $NetBSD: getttyent.3,v 1.7 1996/03/17 19:36:53 christos Exp $ .\" $NetBSD: getttyent.3,v 1.8 1997/10/20 08:07:47 scottr Exp $
.\" .\"
.\" Copyright (c) 1989, 1991, 1993 .\" Copyright (c) 1989, 1991, 1993
.\" The Regents of the University of California. All rights reserved. .\" The Regents of the University of California. All rights reserved.
@ -72,6 +72,7 @@ struct ttyent {
#define TTY_RTSCTS 0x08 /* set 'CRTSCTS' on open (dev. specific) */ #define TTY_RTSCTS 0x08 /* set 'CRTSCTS' on open (dev. specific) */
#define TTY_SOFTCAR 0x10 /* ignore hardware carrier (dev. spec.) */ #define TTY_SOFTCAR 0x10 /* ignore hardware carrier (dev. spec.) */
#define TTY_MDMBUF 0x20 /* set 'MDMBUF' on open (dev. specific) */ #define TTY_MDMBUF 0x20 /* set 'MDMBUF' on open (dev. specific) */
#define TTY_DTRCTS 0x40 /* set 'CDTRCTS' on open (dev. specific) */
int ty_status; /* flag values */ int ty_status; /* flag values */
char *ty_window; /* command for window manager */ char *ty_window; /* command for window manager */
char *ty_comment; /* comment field */ char *ty_comment; /* comment field */

View File

@ -1,4 +1,4 @@
/* $NetBSD: getttyent.c,v 1.11 1997/07/21 14:07:16 jtc Exp $ */ /* $NetBSD: getttyent.c,v 1.12 1997/10/20 08:07:51 scottr Exp $ */
/* /*
* Copyright (c) 1989, 1993 * Copyright (c) 1989, 1993
@ -38,7 +38,7 @@
#if 0 #if 0
static char sccsid[] = "@(#)getttyent.c 8.1 (Berkeley) 6/4/93"; static char sccsid[] = "@(#)getttyent.c 8.1 (Berkeley) 6/4/93";
#else #else
__RCSID("$NetBSD: getttyent.c,v 1.11 1997/07/21 14:07:16 jtc Exp $"); __RCSID("$NetBSD: getttyent.c,v 1.12 1997/10/20 08:07:51 scottr Exp $");
#endif #endif
#endif /* LIBC_SCCS and not lint */ #endif /* LIBC_SCCS and not lint */
@ -128,6 +128,8 @@ getttyent()
tty.ty_status |= TTY_LOCAL; tty.ty_status |= TTY_LOCAL;
else if (scmp(_TTYS_RTSCTS)) else if (scmp(_TTYS_RTSCTS))
tty.ty_status |= TTY_RTSCTS; tty.ty_status |= TTY_RTSCTS;
else if (scmp(_TTYS_DTRCTS))
tty.ty_status |= TTY_DTRCTS;
else if (scmp(_TTYS_SOFTCAR)) else if (scmp(_TTYS_SOFTCAR))
tty.ty_status |= TTY_SOFTCAR; tty.ty_status |= TTY_SOFTCAR;
else if (scmp(_TTYS_MDMBUF)) else if (scmp(_TTYS_MDMBUF))

View File

@ -1,4 +1,4 @@
/* $NetBSD: tty.c,v 1.5 1997/10/09 19:16:04 christos Exp $ */ /* $NetBSD: tty.c,v 1.6 1997/10/20 08:07:56 scottr Exp $ */
/*- /*-
* Copyright (c) 1992, 1993 * Copyright (c) 1992, 1993
@ -41,7 +41,7 @@
#if 0 #if 0
static char sccsid[] = "@(#)tty.c 8.1 (Berkeley) 6/4/93"; static char sccsid[] = "@(#)tty.c 8.1 (Berkeley) 6/4/93";
#else #else
__RCSID("$NetBSD: tty.c,v 1.5 1997/10/09 19:16:04 christos Exp $"); __RCSID("$NetBSD: tty.c,v 1.6 1997/10/20 08:07:56 scottr Exp $");
#endif #endif
#endif /* not lint && not SCCSID */ #endif /* not lint && not SCCSID */
@ -298,6 +298,9 @@ private ttymodes_t ttymodes[] = {
# ifdef CRTS_IFLOW # ifdef CRTS_IFLOW
{ "crts_iflow",CRTS_IFLOW,M_CTL }, { "crts_iflow",CRTS_IFLOW,M_CTL },
# endif /* CRTS_IFLOW */ # endif /* CRTS_IFLOW */
# ifdef CDTRCTS
{ "cdtrcts",CDTRCTS,M_CTL },
# endif /* CDTRCTS */
# ifdef MDMBUF # ifdef MDMBUF
{ "mdmbuf", MDMBUF, M_CTL }, { "mdmbuf", MDMBUF, M_CTL },
# endif /* MDMBUF */ # endif /* MDMBUF */

View File

@ -1,4 +1,4 @@
.\" $NetBSD: slattach.8,v 1.14 1997/09/15 11:20:04 lukem Exp $ .\" $NetBSD: slattach.8,v 1.15 1997/10/20 08:08:17 scottr Exp $
.\" .\"
.\" Copyright (c) 1986, 1991, 1993 .\" Copyright (c) 1986, 1991, 1993
.\" The Regents of the University of California. All rights reserved. .\" The Regents of the University of California. All rights reserved.
@ -53,6 +53,8 @@ The following operands are supported by
.Bl -tag -width Ar .Bl -tag -width Ar
.It Fl h .It Fl h
Turn on RTS/CTS flow control. By default, no flow control is done. Turn on RTS/CTS flow control. By default, no flow control is done.
.It Fl H
Turn on DTR/CTS flow control. By default, no flow control is done.
.It Fl m .It Fl m
Maintain modem control signals after closing the line. Specifically, Maintain modem control signals after closing the line. Specifically,
this disables HUPCL. this disables HUPCL.

View File

@ -1,4 +1,4 @@
/* $NetBSD: slattach.c,v 1.18 1997/09/15 11:20:06 lukem Exp $ */ /* $NetBSD: slattach.c,v 1.19 1997/10/20 08:08:20 scottr Exp $ */
/* /*
* Copyright (c) 1988, 1993 * Copyright (c) 1988, 1993
@ -46,7 +46,7 @@ __COPYRIGHT("@(#) Copyright (c) 1988, 1993\n\
#if 0 #if 0
static char sccsid[] = "@(#)slattach.c 8.2 (Berkeley) 1/7/94"; static char sccsid[] = "@(#)slattach.c 8.2 (Berkeley) 1/7/94";
#else #else
__RCSID("$NetBSD: slattach.c,v 1.18 1997/09/15 11:20:06 lukem Exp $"); __RCSID("$NetBSD: slattach.c,v 1.19 1997/10/20 08:08:20 scottr Exp $");
#endif #endif
#endif /* not lint */ #endif /* not lint */
@ -91,11 +91,14 @@ main(argc, argv)
int ch; int ch;
sigset_t sigset; sigset_t sigset;
while ((ch = getopt(argc, argv, "hms:t:")) != -1) { while ((ch = getopt(argc, argv, "hHms:t:")) != -1) {
switch (ch) { switch (ch) {
case 'h': case 'h':
cflag |= CRTSCTS; cflag |= CRTSCTS;
break; break;
case 'H':
cflag |= CDTRCTS;
break;
case 'm': case 'm':
cflag &= ~HUPCL; cflag &= ~HUPCL;
break; break;

View File

@ -1,4 +1,4 @@
/* $NetBSD: ttyflags.c,v 1.9 1997/09/15 11:24:41 lukem Exp $ */ /* $NetBSD: ttyflags.c,v 1.10 1997/10/20 08:08:24 scottr Exp $ */
/* /*
* Copyright (c) 1994 Christopher G. Demetriou * Copyright (c) 1994 Christopher G. Demetriou
@ -37,7 +37,7 @@ __COPYRIGHT("@(#) Copyright (c) 1994 Christopher G. Demetriou\n\
#endif /* not lint */ #endif /* not lint */
#ifndef lint #ifndef lint
__RCSID("$NetBSD: ttyflags.c,v 1.9 1997/09/15 11:24:41 lukem Exp $"); __RCSID("$NetBSD: ttyflags.c,v 1.10 1997/10/20 08:08:24 scottr Exp $");
#endif /* not lint */ #endif /* not lint */
#include <sys/types.h> #include <sys/types.h>
@ -185,6 +185,12 @@ change_ttyflags(tep)
(void)strcat(strflags, "|"); (void)strcat(strflags, "|");
(void)strcat(strflags, "rtscts"); (void)strcat(strflags, "rtscts");
} }
if (st & TTY_DTRCTS) {
flags |= TIOCFLAG_CDTRCTS;
if (sep++)
(void)strcat(strflags, "|");
(void)strcat(strflags, "dtrcts");
}
if (st & TTY_SOFTCAR) { if (st & TTY_SOFTCAR) {
flags |= TIOCFLAG_SOFTCAR; flags |= TIOCFLAG_SOFTCAR;
if (sep++) if (sep++)

View File

@ -1,4 +1,4 @@
/* $NetBSD: key.c,v 1.2 1997/07/17 05:46:51 mikel Exp $ */ /* $NetBSD: key.c,v 1.3 1997/10/20 08:08:28 scottr Exp $ */
/*- /*-
* Copyright (c) 1991, 1993, 1994 * Copyright (c) 1991, 1993, 1994
@ -38,7 +38,7 @@
#if 0 #if 0
static char sccsid[] = "@(#)key.c 8.3 (Berkeley) 4/2/94"; static char sccsid[] = "@(#)key.c 8.3 (Berkeley) 4/2/94";
#else #else
__RCSID("$NetBSD: key.c,v 1.2 1997/07/17 05:46:51 mikel Exp $"); __RCSID("$NetBSD: key.c,v 1.3 1997/10/20 08:08:28 scottr Exp $");
#endif #endif
#endif /* not lint */ #endif /* not lint */
@ -251,7 +251,7 @@ f_sane(ip)
struct info *ip; struct info *ip;
{ {
ip->t.c_cflag = TTYDEF_CFLAG | (ip->t.c_cflag & (CLOCAL|CRTSCTS)); ip->t.c_cflag = TTYDEF_CFLAG | (ip->t.c_cflag & (CLOCAL|CRTSCTS|CDTRCTS));
ip->t.c_iflag = TTYDEF_IFLAG; ip->t.c_iflag = TTYDEF_IFLAG;
ip->t.c_iflag |= ICRNL; ip->t.c_iflag |= ICRNL;
/* preserve user-preference flags in lflag */ /* preserve user-preference flags in lflag */

View File

@ -1,4 +1,4 @@
/* $NetBSD: modes.c,v 1.2 1997/07/17 05:44:33 mikel Exp $ */ /* $NetBSD: modes.c,v 1.3 1997/10/20 08:08:31 scottr Exp $ */
/*- /*-
* Copyright (c) 1991, 1993, 1994 * Copyright (c) 1991, 1993, 1994
@ -38,7 +38,7 @@
#if 0 #if 0
static char sccsid[] = "@(#)modes.c 8.3 (Berkeley) 4/2/94"; static char sccsid[] = "@(#)modes.c 8.3 (Berkeley) 4/2/94";
#else #else
__RCSID("$NetBSD: modes.c,v 1.2 1997/07/17 05:44:33 mikel Exp $"); __RCSID("$NetBSD: modes.c,v 1.3 1997/10/20 08:08:31 scottr Exp $");
#endif #endif
#endif /* not lint */ #endif /* not lint */
@ -88,6 +88,8 @@ struct modes cmodes[] = {
{ "-clocal", 0, CLOCAL }, { "-clocal", 0, CLOCAL },
{ "crtscts", CRTSCTS, 0 }, { "crtscts", CRTSCTS, 0 },
{ "-crtscts", 0, CRTSCTS }, { "-crtscts", 0, CRTSCTS },
{ "cdtrcts", CDTRCTS, 0 },
{ "-cdtrcts", 0, CDTRCTS },
{ "mdmbuf", MDMBUF, 0 }, { "mdmbuf", MDMBUF, 0 },
{ "-mdmbuf", 0, MDMBUF }, { "-mdmbuf", 0, MDMBUF },
{ NULL }, { NULL },

View File

@ -1,4 +1,4 @@
/* $NetBSD: options.c,v 1.20 1997/09/29 03:53:40 christos Exp $ */ /* $NetBSD: options.c,v 1.21 1997/10/20 08:08:37 scottr Exp $ */
/* /*
* options.c - handles option processing for PPP. * options.c - handles option processing for PPP.
@ -24,7 +24,7 @@
#if 0 #if 0
static char rcsid[] = "Id: options.c,v 1.39 1997/07/14 03:53:34 paulus Exp "; static char rcsid[] = "Id: options.c,v 1.39 1997/07/14 03:53:34 paulus Exp ";
#else #else
__RCSID("$NetBSD: options.c,v 1.20 1997/09/29 03:53:40 christos Exp $"); __RCSID("$NetBSD: options.c,v 1.21 1997/10/20 08:08:37 scottr Exp $");
#endif #endif
#endif #endif
@ -178,6 +178,7 @@ static int setdomain __P((char **));
static int setnetmask __P((char **)); static int setnetmask __P((char **));
static int setcrtscts __P((char **)); static int setcrtscts __P((char **));
static int setnocrtscts __P((char **)); static int setnocrtscts __P((char **));
static int setcdtrcts __P((char **));
static int setxonxoff __P((char **)); static int setxonxoff __P((char **));
static int setnodetach __P((char **)); static int setnodetach __P((char **));
static int setmodem __P((char **)); static int setmodem __P((char **));
@ -315,6 +316,9 @@ static struct cmd {
{"crtscts", 0, setcrtscts}, /* set h/w flow control */ {"crtscts", 0, setcrtscts}, /* set h/w flow control */
{"nocrtscts", 0, setnocrtscts}, /* clear h/w flow control */ {"nocrtscts", 0, setnocrtscts}, /* clear h/w flow control */
{"-crtscts", 0, setnocrtscts}, /* clear h/w flow control */ {"-crtscts", 0, setnocrtscts}, /* clear h/w flow control */
{"cdtrcts", 0, setcdtrcts}, /* set alternate h/w flow control */
{"nocdtrcts", 0, setnocrtscts}, /* clear h/w flow control */
{"-cdtrcts", 0, setnocrtscts}, /* clear h/w flow control */
{"xonxoff", 0, setxonxoff}, /* set s/w flow control */ {"xonxoff", 0, setxonxoff}, /* set s/w flow control */
{"debug", 0, setdebug}, /* Increase debugging level */ {"debug", 0, setdebug}, /* Increase debugging level */
{"kdebug", 1, setkdebug}, /* Enable kernel-level debugging */ {"kdebug", 1, setkdebug}, /* Enable kernel-level debugging */
@ -438,6 +442,7 @@ Usage: %s [ options ], where options are:\n\
auth Require authentication from peer\n\ auth Require authentication from peer\n\
connect <p> Invoke shell command <p> to set up the serial line\n\ connect <p> Invoke shell command <p> to set up the serial line\n\
crtscts Use hardware RTS/CTS flow control\n\ crtscts Use hardware RTS/CTS flow control\n\
cdtrcts Use hardware DTR/CTS flow control (if supported)\n\
defaultroute Add default route through interface\n\ defaultroute Add default route through interface\n\
file <f> Take options from file <f>\n\ file <f> Take options from file <f>\n\
modem Use modem control lines\n\ modem Use modem control lines\n\
@ -1856,6 +1861,14 @@ setnocrtscts(argv)
return (1); return (1);
} }
static int
setcdtrcts(argv)
char **argv;
{
crtscts = 2;
return (1);
}
static int static int
setxonxoff(argv) setxonxoff(argv)
char **argv; char **argv;

View File

@ -1,6 +1,6 @@
.\" $NetBSD: pppd.8,v 1.19 1997/10/18 07:01:38 mikel Exp $ .\" $NetBSD: pppd.8,v 1.20 1997/10/20 08:08:41 scottr Exp $
.\" manual page [] for pppd 2.3 .\" manual page [] for pppd 2.3
.\" $NetBSD: pppd.8,v 1.19 1997/10/18 07:01:38 mikel Exp $ .\" $NetBSD: pppd.8,v 1.20 1997/10/20 08:08:41 scottr Exp $
.\" SH section heading .\" SH section heading
.\" SS subsection heading .\" SS subsection heading
.\" LP paragraph .\" LP paragraph
@ -93,10 +93,29 @@ program to dial the modem and start the remote ppp session. This
option is privileged if the \fInoauth\fR option is used. option is privileged if the \fInoauth\fR option is used.
.TP .TP
.B crtscts .B crtscts
Use hardware flow control (i.e. RTS/CTS) to control the flow of data Use hardware flow control (i.e. RTS/CTS) to control the flow of
on the serial port. If neither the \fIcrtscts\fR nor the data on the serial port. If neither the \fIcrtscts\fR, the
\fInocrtscts\fR option is given, the hardware flow control setting \fInocrtscts\fR, the \fIcdtrcts\fR nor the \fInocdtrcts\fR option
for the serial port is left unchanged. is given, the hardware flow control setting for the serial port is
left unchanged.
Some serial ports (such as Macintosh serial ports) lack a true
RTS output. Such serial ports use this mode to impliment
unidirectional flow control. The serial port will
suspend transmission when requested by the modem (via CTS)
but will be unable to request the modem stop sending to the
computer. This mode retains the ability to use DTR as
a modem control line.
.TP
.B cdtrcts
Use a non-standard hardware flow control (i.e. DTR/CTS) to control
the flow of data on the serial port. If neither the \fIcrtscts\fR,
the \fInocrtscts\fR, the \fIcdtrcts\fR nor the \fInocdtrcts\fR
option is given, the hardware flow control setting for the serial
port is left unchanged.
Some serial ports (such as Macintosh serial ports) lack a true
RTS output. Such serial ports use this mode to impliment true
bi-directional flow control. The sacrafice is that this flow
control mode does not permit using DTR as a modem control line.
.TP .TP
.B defaultroute .B defaultroute
Add a default route to the system routing tables, using the peer as Add a default route to the system routing tables, using the peer as
@ -470,10 +489,14 @@ should only be required if the peer is buggy and gets confused by
requests from pppd for CCP negotiation. requests from pppd for CCP negotiation.
.TP .TP
.B nocrtscts .B nocrtscts
Disable hardware flow control (i.e. RTS/CTS) on the serial port. If Disable hardware flow control (i.e. RTS/CTS) on the serial port.
neither the \fIcrtscts\fR nor the \fInocrtscts\fR option is given, If neither the \fIcrtscts\fR nor the \fInocrtscts\fR nor the
the hardware flow control setting for the serial port is left \fIcdtrcts\fR nor the \fInodtrcts\fR option is given, the hardware
unchanged. flow control setting for the serial port is left unchanged.
.TP
.B nodtrcts
This option is a synonym for \fInocrtscts\fR. Either of these options will
disable both forms of hardware flow control.
.TP .TP
.B nodefaultroute .B nodefaultroute
Disable the \fIdefaultroute\fR option. The system administrator who Disable the \fIdefaultroute\fR option. The system administrator who

View File

@ -1,4 +1,4 @@
/* $NetBSD: sys-bsd.c,v 1.23 1997/09/30 16:45:16 christos Exp $ */ /* $NetBSD: sys-bsd.c,v 1.24 1997/10/20 08:08:47 scottr Exp $ */
/* /*
* sys-bsd.c - System-dependent procedures for setting up * sys-bsd.c - System-dependent procedures for setting up
@ -22,12 +22,11 @@
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/ */
#include <sys/cdefs.h>
#ifndef lint #ifndef lint
#if 0 #if 0
static char rcsid[] = "Id: sys-bsd.c,v 1.28 1997/04/30 05:57:46 paulus Exp "; static char rcsid[] = "Id: sys-bsd.c,v 1.28 1997/04/30 05:57:46 paulus Exp ";
#else #else
__RCSID("$NetBSD: sys-bsd.c,v 1.23 1997/09/30 16:45:16 christos Exp $"); __RCSID("$NetBSD: sys-bsd.c,v 1.24 1997/10/20 08:08:47 scottr Exp $");
#endif #endif
#endif #endif
@ -66,8 +65,8 @@ __RCSID("$NetBSD: sys-bsd.c,v 1.23 1997/09/30 16:45:16 christos Exp $");
#include <sys/param.h> #include <sys/param.h>
#if defined(NetBSD) && (NetBSD >= 199703) #if defined(NetBSD) && (NetBSD >= 199703)
#include <netinet/if_inarp.h> #include <netinet/if_inarp.h>
#else /* NetBSD 1.2D or later */ #else /* NetBSD 1.2C or earlier */
#include <net/if_ether.h> #include <netinet/if_ether.h>
#endif #endif
#endif #endif
@ -391,10 +390,13 @@ set_up_tty(fd, local)
} }
tios.c_cflag &= ~(CSIZE | CSTOPB | PARENB | CLOCAL); tios.c_cflag &= ~(CSIZE | CSTOPB | PARENB | CLOCAL);
if (crtscts > 0 && !local) if (crtscts > 0 && !local) {
if (crtscts == 2)
tios.c_cflag |= CDTRCTS;
else
tios.c_cflag |= CRTSCTS; tios.c_cflag |= CRTSCTS;
else if (crtscts < 0) } else if (crtscts < 0)
tios.c_cflag &= ~CRTSCTS; tios.c_cflag &= ~(CRTSCTS | CDTRCTS);
tios.c_cflag |= CS8 | CREAD | HUPCL; tios.c_cflag |= CS8 | CREAD | HUPCL;
if (local || !modem) if (local || !modem)