[PATCH v5 11/12] termios: unify the naming of the termios speed fields
H. Peter Anvin
hpa@zytor.com
Wed May 14 22:14:04 GMT 2025
The generic code has __ispeed and __ospeed; Linux has c_ispeed and
c_ospeed. Use an anonymous union member to allow both set of names on
all platforms.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
---
bits/termios.h | 11 +++++++-
sysdeps/unix/sysv/linux/bits/termios-struct.h | 28 ++++++++++++-------
2 files changed, 28 insertions(+), 11 deletions(-)
diff --git a/bits/termios.h b/bits/termios.h
index 8f0b817dbf4c..798012cb8ebc 100644
--- a/bits/termios.h
+++ b/bits/termios.h
@@ -286,7 +286,16 @@ struct termios
cc_t c_cc[NCCS];
/* Input and output baud rates. */
- speed_t __ispeed, __ospeed;
+ __extension__ union {
+ speed_t __ispeed;
+ speed_t c_ispeed;
+ };
+#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
+ __extension__ union {
+ speed_t __ospeed;
+ speed_t c_ospeed;
+ };
+#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
};
#define _IOT_termios /* Hurd ioctl type field. */ \
diff --git a/sysdeps/unix/sysv/linux/bits/termios-struct.h b/sysdeps/unix/sysv/linux/bits/termios-struct.h
index d7167dfa20c8..3e33d81df047 100644
--- a/sysdeps/unix/sysv/linux/bits/termios-struct.h
+++ b/sysdeps/unix/sysv/linux/bits/termios-struct.h
@@ -22,15 +22,23 @@
#define NCCS 32
struct termios
- {
- tcflag_t c_iflag; /* input mode flags */
- tcflag_t c_oflag; /* output mode flags */
- tcflag_t c_cflag; /* control mode flags */
- tcflag_t c_lflag; /* local mode flags */
- cc_t c_line; /* line discipline */
- cc_t c_cc[NCCS]; /* control characters */
- speed_t c_ispeed; /* input speed */
- speed_t c_ospeed; /* output speed */
+{
+ tcflag_t c_iflag; /* input mode flags */
+ tcflag_t c_oflag; /* output mode flags */
+ tcflag_t c_cflag; /* control mode flags */
+ tcflag_t c_lflag; /* local mode flags */
+ cc_t c_line; /* line discipline */
+ cc_t c_cc[NCCS]; /* control characters */
+
+ /* Input and output baud rates. */
+ __extension__ union {
+ speed_t __ispeed;
+ speed_t c_ispeed;
+ };
#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
-#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
+ __extension__ union {
+ speed_t __ospeed;
+ speed_t c_ospeed;
};
+#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
+};
--
2.49.0
More information about the Libc-alpha
mailing list