about summary refs log tree commit diff
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.gz
glibc-45d5ac9cae299dd05de1a3d076304a46424ad833.tar.xz
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