This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 06/12] termios: Consolidate Baud Rate Selection definitions


Ping.

On 15/10/2018 17:49, Adhemerval Zanella wrote:
> 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.
> 
> 	* 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/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              |  3 +-
>  .../unix/sysv/linux/alpha/bits/termios-baud.h | 46 ++++++++++++++++++
>  sysdeps/unix/sysv/linux/alpha/bits/termios.h  | 26 +---------
>  sysdeps/unix/sysv/linux/bits/termios-baud.h   | 48 +++++++++++++++++++
>  sysdeps/unix/sysv/linux/bits/termios.h        | 29 +----------
>  sysdeps/unix/sysv/linux/mips/bits/termios.h   | 28 +----------
>  .../sysv/linux/powerpc/bits/termios-baud.h    | 45 +++++++++++++++++
>  .../unix/sysv/linux/powerpc/bits/termios.h    | 25 +---------
>  sysdeps/unix/sysv/linux/sparc/bits/termios.h  | 30 +-----------
>  9 files changed, 149 insertions(+), 131 deletions(-)
>  create mode 100644 sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h
>  create mode 100644 sysdeps/unix/sysv/linux/bits/termios-baud.h
>  create mode 100644 sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h
> 
> diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
> index 097107c82c..1af8145b13 100644
> --- a/sysdeps/unix/sysv/linux/Makefile
> +++ b/sysdeps/unix/sysv/linux/Makefile
> @@ -44,7 +44,8 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
>  		  bits/procfs.h bits/procfs-id.h bits/procfs-extra.h \
>  		  bits/procfs-prregset.h bits/mman-map-flags-generic.h \
>  		  bits/msq-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
> index 0000000000..eba263a67d
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-baud.h
> @@ -0,0 +1,46 @@
> +/* termios baud rate selection definitions.  Linux/alpha version.
> +   Copyright (C) 2018 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
> diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios.h b/sysdeps/unix/sysv/linux/alpha/bits/termios.h
> index 7259c1dd30..530dd48410 100644
> --- a/sysdeps/unix/sysv/linux/alpha/bits/termios.h
> +++ b/sysdeps/unix/sysv/linux/alpha/bits/termios.h
> @@ -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
> index 0000000000..7f7f9c511c
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/bits/termios-baud.h
> @@ -0,0 +1,48 @@
> +/* termios baud rate selection definitions.  Linux/generic version.
> +   Copyright (C) 2018 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
> diff --git a/sysdeps/unix/sysv/linux/bits/termios.h b/sysdeps/unix/sysv/linux/bits/termios.h
> index 15b279b01e..07ffdf9779 100644
> --- a/sysdeps/unix/sysv/linux/bits/termios.h
> +++ b/sysdeps/unix/sysv/linux/bits/termios.h
> @@ -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
> diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios.h b/sysdeps/unix/sysv/linux/mips/bits/termios.h
> index f851adbfe1..008527577f 100644
> --- a/sysdeps/unix/sysv/linux/mips/bits/termios.h
> +++ b/sysdeps/unix/sysv/linux/mips/bits/termios.h
> @@ -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
> index 0000000000..4f490a929f
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-baud.h
> @@ -0,0 +1,45 @@
> +/* termios baud rate selection definitions.  Linux/powerpc version.
> +   Copyright (C) 2018 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
> diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios.h
> index 4045274af9..2f928d5217 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/bits/termios.h
> +++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios.h
> @@ -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.h b/sysdeps/unix/sysv/linux/sparc/bits/termios.h
> index 9c884eb791..d612080754 100644
> --- a/sysdeps/unix/sysv/linux/sparc/bits/termios.h
> +++ b/sysdeps/unix/sysv/linux/sparc/bits/termios.h
> @@ -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
> 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]