aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2008-05-05 23:06:01 +0000
committerRoland McGrath <roland@gnu.org>2008-05-05 23:06:01 +0000
commit45d5ac9cae299dd05de1a3d076304a46424ad833 (patch)
treecfc91e2e7b0a53ab2edbe6ae634b644b98533fe1
parenta86a7a3946738554b473c3d3501e6e23ee6ee8e8 (diff)
downloadglibc-45d5ac9cae299dd05de1a3d076304a46424ad833.tar
glibc-45d5ac9cae299dd05de1a3d076304a46424ad833.tar.gz
glibc-45d5ac9cae299dd05de1a3d076304a46424ad833.tar.bz2
glibc-45d5ac9cae299dd05de1a3d076304a46424ad833.zip
2007-09-14 Samuel Thibault <samuel.thibault@ens-lyon.org>
Fix termios bit macros. Move *DLY definitions where they belong, in termios.h. Add *[0-3] definitions. Fixes confusion between VT and FF. * bits/ioctls.h (NL0, NL1, TAB0, TAB1, TAB2, CR0, CR1, CR2, CR3, FF0, FF1, BS0, BS1): Undefine these at start if they are already defined to avoid collision with termios.h. (NLDLY, TABDLY, TAB3, CRDLY, VTDLY, BSDLY): Remove macros. * bits/termios.h [__USE_MISC || __USE_XOPEN] (NL0, NL1, TAB0, TAB1, TAB2, CR0, CR1, CR2, CR3, FF0, FF1, BS0, BS1): Likewise. [__USE_BSD || __USE_XOPEN] (OCRNL, ONOCR, ONLRET): New macros. [__USE_MISC || __USE_XOPEN] (NLDLY, NL0, NL1, TABDLY, TAB0, TAB1, TAB2, TAB3, CRDLY, CR0, CR1, CR2, CR3, FFDLY, FF0, FF1, BSDLY, BS0, BS1, VTDLY, VT0, VT1): New macros. [__USE_GNU] (OLCUC): Change value of macro. [__USE_XOPEN] (OFILL): New macro. [__USE_BSD] (CRTSCTS): Change value. (CRTS_IFLOW, CCTS_OFLOW): Change into compatibility macros. [__USE_BSD] (CDTRCTS, CHWFLOW): New macros. (B7200, B14400, B28800, B76800): New macros.
-rw-r--r--bits/termios.h94
1 files changed, 88 insertions, 6 deletions
diff --git a/bits/termios.h b/bits/termios.h
index 43bb1ce52d..4dc0fab911 100644
--- a/bits/termios.h
+++ b/bits/termios.h
@@ -24,6 +24,50 @@
/* These macros are also defined in some <bits/ioctls.h> files (with
numerically identical values), but this serves to shut up cpp's
complaining. */
+#if defined __USE_MISC || defined __USE_XOPEN
+
+# ifdef NL0
+# undef NL0
+# endif
+# ifdef NL1
+# undef NL1
+# endif
+# ifdef TAB0
+# undef TAB0
+# endif
+# ifdef TAB1
+# undef TAB1
+# endif
+# ifdef TAB2
+# undef TAB2
+# endif
+# ifdef CR0
+# undef CR0
+# endif
+# ifdef CR1
+# undef CR1
+# endif
+# ifdef CR2
+# undef CR2
+# endif
+# ifdef CR3
+# undef CR3
+# endif
+# ifdef FF0
+# undef FF0
+# endif
+# ifdef FF1
+# undef FF1
+# endif
+# ifdef BS0
+# undef BS0
+# endif
+# ifdef BS1
+# undef BS1
+# endif
+
+#endif /* __USE_MISC || __USE_XOPEN */
+
#ifdef __USE_BSD
# ifdef MDMBUF
@@ -93,11 +137,43 @@ struct termios
#define OPOST (1 << 0) /* Perform output processing. */
#ifdef __USE_BSD
# define ONLCR (1 << 1) /* Map NL to CR-NL on output. */
-# define OXTABS (1 << 2) /* Expand tabs to spaces. */
+# define OXTABS TAB3 /* Expand tabs to spaces. */
# define ONOEOT (1 << 3) /* Discard EOT (^D) on output. */
#endif
+#if defined __USE_BSD || defined __USE_XOPEN
+# define OCRNL (1 << 4) /* Map CR to NL. */
+# define ONOCR (1 << 5) /* Discard CR's when on column 0. */
+# define ONLRET (1 << 6) /* Move to column 0 on NL. */
+#endif
+#if defined __USE_MISC || defined __USE_XOPEN
+# define NLDLY (3 << 8) /* NL delay. */
+# define NL0 (0 << 8) /* NL type 0. */
+# define NL1 (1 << 8) /* NL type 1. */
+# define TABDLY (3 << 10) /* TAB delay. */
+# define TAB0 (0 << 10) /* TAB delay type 0. */
+# define TAB1 (1 << 10) /* TAB delay type 1. */
+# define TAB2 (2 << 10) /* TAB delay type 2. */
+# define TAB3 (1 << 2) /* Expand tabs to spaces. */
+# define CRDLY (3 << 12) /* CR delay. */
+# define CR0 (0 << 12) /* CR delay type 0. */
+# define CR1 (1 << 12) /* CR delay type 1. */
+# define CR2 (2 << 12) /* CR delay type 2. */
+# define CR3 (3 << 12) /* CR delay type 3. */
+# define FFDLY (1 << 14) /* FF delay. */
+# define FF0 (0 << 14) /* FF delay type 0. */
+# define FF1 (1 << 14) /* FF delay type 1. */
+# define BSDLY (1 << 15) /* BS delay. */
+# define BS0 (0 << 15) /* BS delay type 0. */
+# define BS1 (1 << 15) /* BS delay type 1. */
+# define VTDLY (1 << 16) /* VT delay. */
+# define VT0 (0 << 16) /* VT delay type 0. */
+# define VT1 (1 << 16) /* VT delay type 1. */
+#endif /* __USE_MISC || __USE_XOPEN */
#ifdef __USE_GNU
-# define OLCUC (1 << 9) /* Translate lower case output to upper case */
+# define OLCUC (1 << 17) /* Translate lower case output to upper case */
+#endif
+#ifdef __USE_XOPEN
+# define OFILL (1 << 18) /* Send fill characters for delays. */
#endif
/* Control modes. */
@@ -117,10 +193,12 @@ struct termios
#define HUPCL (1 << 14) /* Hang up on last close. */
#define CLOCAL (1 << 15) /* Ignore modem status lines. */
#ifdef __USE_BSD
-# define CCTS_OFLOW (1 << 16) /* CTS flow control of output. */
-# define CRTS_IFLOW (1 << 17) /* RTS flow control of input. */
-# define CRTSCTS (CCTS_OFLOW|CRTS_IFLOW) /* CTS/RTS flow control. */
-# define MDMBUF (1 << 20) /* Carrier flow control of output. */
+# define CRTSCTS (1 << 16) /* RTS/CTS flow control. */
+# define CRTS_IFLOW CRTSCTS /* Compatibility. */
+# define CCTS_OFLOW CRTSCTS /* Compatibility. */
+# define CDTRCTS (1 << 17) /* DTR/CTS flow control. */
+# define MDMBUF (1 << 20) /* DTR/DCD flow control. */
+# define CHWFLOW (MDMBUF|CRTSCTS|CDTRCTS) /* All types of flow control. */
#endif
/* Local modes. */
@@ -210,13 +288,17 @@ struct termios
#define B2400 2400 /* 2400 baud. */
#define B4800 4800 /* 4800 baud. */
#define B9600 9600 /* 9600 baud. */
+#define B7200 7200 /* 7200 baud. */
+#define B14400 14400 /* 14400 baud. */
#define B19200 19200 /* 19200 baud. */
+#define B28800 28800 /* 28800 baud. */
#define B38400 38400 /* 38400 baud. */
#ifdef __USE_MISC
# define EXTA 19200
# define EXTB 38400
#endif
#define B57600 57600
+#define B76800 76800
#define B115200 115200
#define B230400 230400
#define B460800 460800