]> sourceware.org Git - glibc.git/commitdiff
termios: Consolidate Baud Rate Selection definitions (BZ#23783)
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 9 Oct 2018 17:35:03 +0000 (14:35 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 3 Jan 2019 11:32:12 +0000 (09:32 -0200)
This patch consolidates the termios symbolic constants used for baud rates
selection used along with speed_t on its own header.  The Linux generic
implementation values match the kernel UAPI and each architecture with
deviate values have their own implementation (in this case alpha and
powerpc).

No semantic change is expected, checked on a build against x86_64-linux-gnu,
alpha-linux-gnu, mips64-linux-gnu, and sparc64-linux-gnu.

[BZ #23783]
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
termios-baud.h.
* sysdeps/unix/sysv/linux/bits/termios-baud.h: New file.
* sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/termios-baud.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/termios.h (B57600, B115200,
B230400B460800B500000B576000B921600B1000000B1152000,
B1500000B2000000B2500000B3000000B3500000B4000000,
__MAX_BAUD): Move to termios-baud.h.
[__USE_MISC] (CBAUD, CBAUDEX): Likewise.
* sysdeps/unix/sysv/linux/bits/termios.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/termios.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/termios.h: Likewise.

ChangeLog
sysdeps/unix/sysv/linux/Makefile
sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/alpha/bits/termios.h
sysdeps/unix/sysv/linux/bits/termios-baud.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/bits/termios.h
sysdeps/unix/sysv/linux/mips/bits/termios.h
sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/bits/termios.h
sysdeps/unix/sysv/linux/sparc/bits/termios-baud.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/sparc/bits/termios.h

index 9edf6ca673eb0b404a0687b878965a9554ba5c7b..a3a5495fb32039c145a644af13a84d4513888faf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,22 @@
 2019-01-03  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
+       [BZ #23783]
+       * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+       termios-baud.h.
+       * sysdeps/unix/sysv/linux/bits/termios-baud.h: New file.
+       * sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h: Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h: Likewise.
+       * sysdeps/unix/sysv/linux/sparc/bits/termios-baud.h: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/bits/termios.h (B57600, B115200,
+       B230400, B460800, B500000, B576000, B921600, B1000000, B1152000,
+       B1500000, B2000000, B2500000, B3000000, B3500000, B4000000,
+       __MAX_BAUD): Move to termios-baud.h.
+       [__USE_MISC] (CBAUD, CBAUDEX): Likewise.
+       * sysdeps/unix/sysv/linux/bits/termios.h: Likewise.
+       * sysdeps/unix/sysv/linux/mips/bits/termios.h: Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/bits/termios.h: Likewise.
+       * sysdeps/unix/sysv/linux/sparc/bits/termios.h: Likewise.
+
        * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
        termios-c_oflag.h.
        * sysdeps/unix/sysv/linux/bits/termios-c_oflag.h: New file.
index 686b3e236b9ee9594a0703148bbe0befe4492f4d..e1ddbf97871bdce374581e61caec628e0a6635c3 100644 (file)
@@ -45,7 +45,8 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
                  bits/procfs-prregset.h bits/mman-map-flags-generic.h \
                  bits/msq-pad.h bits/sem-pad.h bits/shmlba.h bits/shm-pad.h \
                  bits/termios-struct.h bits/termios-c_cc.h \
-                 bits/termios-c_iflag.h bits/termios-c_oflag.h
+                 bits/termios-c_iflag.h bits/termios-c_oflag.h \
+                 bits/termios-baud.h
 
 tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \
         tst-quota tst-sync_file_range tst-sysconf-iov_max tst-ttyname \
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h
new file mode 100644 (file)
index 0000000..24efd3d
--- /dev/null
@@ -0,0 +1,46 @@
+/* termios baud rate selection definitions.  Linux/alpha version.
+   Copyright (C) 2019 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+#endif
+
+#ifdef __USE_MISC
+# define CBAUD 0000037
+# define CBAUDEX 0000000
+# define CMSPAR          010000000000          /* mark or space (stick) parity */
+# define CRTSCTS  020000000000         /* flow control */
+#endif
+
+#define  B57600   00020
+#define  B115200  00021
+#define  B230400  00022
+#define  B460800  00023
+#define  B500000  00024
+#define  B576000  00025
+#define  B921600  00026
+#define  B1000000 00027
+#define  B1152000 00030
+#define  B1500000 00031
+#define  B2000000 00032
+#define  B2500000 00033
+#define  B3000000 00034
+#define  B3500000 00035
+#define  B4000000 00036
+
+#define __MAX_BAUD B4000000
index 9f39f75e6c6588bae6a401999e02d09af00f9583..69a436b91e9944a2810711801c0c13c3bf52bfb4 100644 (file)
@@ -30,9 +30,6 @@ typedef unsigned int  tcflag_t;
 #include <bits/termios-c_oflag.h>
 
 /* c_cflag bit meaning */
-#ifdef __USE_MISC
-# define CBAUD 0000037
-#endif
 #define  B0    0000000         /* hang up */
 #define  B50   0000001
 #define  B75   0000002
@@ -52,25 +49,8 @@ typedef unsigned int tcflag_t;
 #ifdef __USE_MISC
 # define EXTA B19200
 # define EXTB B38400
-# define CBAUDEX 0000000
 #endif
-#define  B57600   00020
-#define  B115200  00021
-#define  B230400  00022
-#define  B460800  00023
-#define  B500000  00024
-#define  B576000  00025
-#define  B921600  00026
-#define  B1000000 00027
-#define  B1152000 00030
-#define  B1500000 00031
-#define  B2000000 00032
-#define  B2500000 00033
-#define  B3000000 00034
-#define  B3500000 00035
-#define  B4000000 00036
-
-#define __MAX_BAUD B4000000
+#include <bits/termios-baud.h>
 
 #define CSIZE  00001400
 #define   CS5  00000000
@@ -85,10 +65,6 @@ typedef unsigned int tcflag_t;
 #define HUPCL  00040000
 
 #define CLOCAL 00100000
-#ifdef __USE_MISC
-# define CMSPAR          010000000000          /* mark or space (stick) parity */
-# define CRTSCTS  020000000000         /* flow control */
-#endif
 
 /* c_lflag bits */
 #define ISIG   0x00000080
diff --git a/sysdeps/unix/sysv/linux/bits/termios-baud.h b/sysdeps/unix/sysv/linux/bits/termios-baud.h
new file mode 100644 (file)
index 0000000..7258d67
--- /dev/null
@@ -0,0 +1,48 @@
+/* termios baud rate selection definitions.  Linux/generic version.
+   Copyright (C) 2019 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+#endif
+
+#ifdef __USE_MISC
+# define CBAUD  000000010017 /* Baud speed mask (not in POSIX).  */
+# define CBAUDEX 000000010000 /* Extra baud speed mask, included in CBAUD.
+                                (not in POSIX).  */
+# define CIBAUD         002003600000 /* Input baud rate (not used).  */
+# define CMSPAR  010000000000 /* Mark or space (stick) parity.  */
+# define CRTSCTS 020000000000 /* Flow control.  */
+#endif
+
+/* Extra output baud rates (not in POSIX).  */
+#define  B57600    0010001
+#define  B115200   0010002
+#define  B230400   0010003
+#define  B460800   0010004
+#define  B500000   0010005
+#define  B576000   0010006
+#define  B921600   0010007
+#define  B1000000  0010010
+#define  B1152000  0010011
+#define  B1500000  0010012
+#define  B2000000  0010013
+#define  B2500000  0010014
+#define  B3000000  0010015
+#define  B3500000  0010016
+#define  B4000000  0010017
+#define __MAX_BAUD B4000000
index d8af5f4a7c15dc81938605725895679974264027..2267418864959657b5a7c89549bc741570a2edee 100644 (file)
@@ -30,9 +30,6 @@ typedef unsigned int  tcflag_t;
 #include <bits/termios-c_oflag.h>
 
 /* c_cflag bit meaning */
-#ifdef __USE_MISC
-# define CBAUD 0010017
-#endif
 #define  B0    0000000         /* hang up */
 #define  B50   0000001
 #define  B75   0000002
@@ -53,6 +50,8 @@ typedef unsigned int  tcflag_t;
 # define EXTA B19200
 # define EXTB B38400
 #endif
+#include <bits/termios-baud.h>
+
 #define CSIZE  0000060
 #define   CS5  0000000
 #define   CS6  0000020
@@ -64,30 +63,6 @@ typedef unsigned int tcflag_t;
 #define PARODD 0001000
 #define HUPCL  0002000
 #define CLOCAL 0004000
-#ifdef __USE_MISC
-# define CBAUDEX 0010000
-#endif
-#define  B57600   0010001
-#define  B115200  0010002
-#define  B230400  0010003
-#define  B460800  0010004
-#define  B500000  0010005
-#define  B576000  0010006
-#define  B921600  0010007
-#define  B1000000 0010010
-#define  B1152000 0010011
-#define  B1500000 0010012
-#define  B2000000 0010013
-#define  B2500000 0010014
-#define  B3000000 0010015
-#define  B3500000 0010016
-#define  B4000000 0010017
-#define __MAX_BAUD B4000000
-#ifdef __USE_MISC
-# define CIBAUD          002003600000          /* input baud rate (not used) */
-# define CMSPAR   010000000000         /* mark or space (stick) parity */
-# define CRTSCTS  020000000000         /* flow control */
-#endif
 
 /* c_lflag bits */
 #define ISIG   0000001
index cb019295b31723a1c391a58c61de68689bd5c809..ac316ba9242a317f539e8794a89655e7c1abca41 100644 (file)
@@ -30,9 +30,6 @@ typedef unsigned int  tcflag_t;
 #include <bits/termios-c_oflag.h>
 
 /* c_cflag bit meaning */
-#ifdef __USE_MISC
-# define CBAUD 0010017
-#endif
 #define  B0    0000000         /* hang up */
 #define  B50   0000001
 #define  B75   0000002
@@ -53,6 +50,8 @@ typedef unsigned int  tcflag_t;
 # define EXTA B19200
 # define EXTB B38400
 #endif
+#include <bits/termios-baud.h>
+
 #define CSIZE  0000060         /* Number of bits per byte (mask).  */
 #define   CS5  0000000         /* 5 bits per byte.  */
 #define   CS6  0000020         /* 6 bits per byte.  */
@@ -64,29 +63,6 @@ typedef unsigned int tcflag_t;
 #define PARODD 0001000         /* Odd parity instead of even.  */
 #define HUPCL  0002000         /* Hang up on last close.  */
 #define CLOCAL 0004000         /* Ignore modem status lines.  */
-#ifdef __USE_MISC
-# define CBAUDEX   0010000
-#endif
-#define  B57600   0010001
-#define  B115200  0010002
-#define  B230400  0010003
-#define  B460800  0010004
-#define  B500000  0010005
-#define  B576000  0010006
-#define  B921600  0010007
-#define  B1000000 0010010
-#define  B1152000 0010011
-#define  B1500000 0010012
-#define  B2000000 0010013
-#define  B2500000 0010014
-#define  B3000000 0010015
-#define  B3500000 0010016
-#define  B4000000 0010017
-#define __MAX_BAUD B4000000
-#ifdef __USE_MISC
-# define CIBAUD          002003600000  /* input baud rate (not used) */
-# define CRTSCTS  020000000000         /* flow control */
-#endif
 
 /* c_lflag bits */
 #define ISIG   0000001         /* Enable signals.  */
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h
new file mode 100644 (file)
index 0000000..fc16e63
--- /dev/null
@@ -0,0 +1,45 @@
+/* termios baud rate selection definitions.  Linux/powerpc version.
+   Copyright (C) 2019 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+#endif
+
+#ifdef __USE_MISC
+# define CBAUD 0000377
+# define CBAUDEX 0000020
+# define CMSPAR   010000000000         /* mark or space (stick) parity */
+# define CRTSCTS  020000000000         /* flow control */
+#endif
+
+#define  B57600   00020
+#define  B115200  00021
+#define  B230400  00022
+#define  B460800  00023
+#define  B500000  00024
+#define  B576000  00025
+#define  B921600  00026
+#define  B1000000 00027
+#define  B1152000 00030
+#define  B1500000 00031
+#define  B2000000 00032
+#define  B2500000 00033
+#define  B3000000 00034
+#define  B3500000 00035
+#define  B4000000 00036
+#define __MAX_BAUD B4000000
index d89fad8368b7cd96fd736d2ffe10519a34d6254a..e35de92529687d1edea9a7ada57cccf43e042d2d 100644 (file)
@@ -29,9 +29,6 @@ typedef unsigned int  tcflag_t;
 #include <bits/termios-c_oflag.h>
 
 /* c_cflag bit meaning */
-#ifdef __USE_MISC
-# define CBAUD 0000377
-#endif
 #define  B0    0000000         /* hang up */
 #define  B50   0000001
 #define  B75   0000002
@@ -51,24 +48,8 @@ typedef unsigned int tcflag_t;
 #ifdef __USE_MISC
 # define EXTA B19200
 # define EXTB B38400
-# define CBAUDEX 0000020
 #endif
-#define  B57600   00020
-#define  B115200  00021
-#define  B230400  00022
-#define  B460800  00023
-#define  B500000  00024
-#define  B576000  00025
-#define  B921600  00026
-#define  B1000000 00027
-#define  B1152000 00030
-#define  B1500000 00031
-#define  B2000000 00032
-#define  B2500000 00033
-#define  B3000000 00034
-#define  B3500000 00035
-#define  B4000000 00036
-#define __MAX_BAUD B4000000
+#include <bits/termios-baud.h>
 
 #define CSIZE  00001400
 #define   CS5  00000000
@@ -83,10 +64,6 @@ typedef unsigned int tcflag_t;
 #define HUPCL  00040000
 
 #define CLOCAL 00100000
-#ifdef __USE_MISC
-# define CMSPAR   010000000000         /* mark or space (stick) parity */
-# define CRTSCTS  020000000000         /* flow control */
-#endif
 
 /* c_lflag bits */
 #define ISIG   0x00000080
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios-baud.h b/sysdeps/unix/sysv/linux/sparc/bits/termios-baud.h
new file mode 100644 (file)
index 0000000..3803e12
--- /dev/null
@@ -0,0 +1,46 @@
+/* termios baud rate selection definitions.  Linux/sparc version.
+   Copyright (C) 2019 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <http://www.gnu.org/licenses/>.  */
+
+#ifndef _TERMIOS_H
+# error "Never include <bits/termios-baud.h> directly; use <termios.h> instead."
+#endif
+
+#ifdef __USE_MISC
+# define CBAUD   0x0000100f
+# define CBAUDEX 0x00001000
+# define CIBAUD         0x100f0000     /* input baud rate (not used) */
+# define CMSPAR  0x40000000    /* mark or space (stick) parity */
+# define CRTSCTS 0x80000000    /* flow control */
+#endif
+
+#define  B57600  0x00001001
+#define  B115200 0x00001002
+#define  B230400 0x00001003
+#define  B460800 0x00001004
+#define  B76800  0x00001005
+#define  B153600 0x00001006
+#define  B307200 0x00001007
+#define  B614400 0x00001008
+#define  B921600 0x00001009
+#define  B500000 0x0000100a
+#define  B576000 0x0000100b
+#define B1000000 0x0000100c
+#define B1152000 0x0000100d
+#define B1500000 0x0000100e
+#define B2000000 0x0000100f
+#define __MAX_BAUD B2000000
index df278b6571ed1c68a4059dda1141dda50f5a00fe..38128e7c6a0c8dfa70d623187ba098a4c6640027 100644 (file)
@@ -30,9 +30,6 @@ typedef unsigned int tcflag_t;
 #include <bits/termios-c_oflag.h>
 
 /* c_cflag bit meaning */
-#ifdef __USE_MISC
-# define CBAUD 0x0000100f
-#endif
 #define  B0    0x00000000      /* hang up */
 #define  B50   0x00000001
 #define  B75   0x00000002
@@ -53,6 +50,8 @@ typedef unsigned int tcflag_t;
 # define EXTA    B19200
 # define EXTB    B38400
 #endif
+#include <bits/termios-baud.h>
+
 #define  CSIZE  0x00000030
 #define   CS5  0x00000000
 #define   CS6  0x00000010
@@ -64,31 +63,6 @@ typedef unsigned int tcflag_t;
 #define PARODD 0x00000200
 #define HUPCL  0x00000400
 #define CLOCAL 0x00000800
-#ifdef __USE_MISC
-# define CBAUDEX 0x00001000
-#endif
-#define  B57600  0x00001001
-#define  B115200 0x00001002
-#define  B230400 0x00001003
-#define  B460800 0x00001004
-#define  B76800  0x00001005
-#define  B153600 0x00001006
-#define  B307200 0x00001007
-#define  B614400 0x00001008
-#define  B921600 0x00001009
-#define  B500000 0x0000100a
-#define  B576000 0x0000100b
-#define B1000000 0x0000100c
-#define B1152000 0x0000100d
-#define B1500000 0x0000100e
-#define B2000000 0x0000100f
-#define __MAX_BAUD B2000000
-
-#ifdef __USE_MISC
-# define CIBAUD         0x100f0000     /* input baud rate (not used) */
-# define CMSPAR         0x40000000     /* mark or space (stick) parity */
-# define CRTSCTS 0x80000000    /* flow control */
-#endif
 
 /* c_lflag bits */
 #define ISIG   0x00000001
This page took 0.084701 seconds and 5 git commands to generate.