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 04/12] termios: Consolidate Input Modes definitions.


Ping.

On 15/10/2018 17:49, Adhemerval Zanella wrote:
> This patch consolidates the termios symbolic constants used for input
> modes with c_iflag member 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 (sysdeps_headers): Add termios-c_iflag.h.
> 	* sysdeps/unix/sysv/linux/bits/termios-c_iflag.h: New file.
> 	* sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h: Likewise.
> 	* sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h: Likewise.
> 	* sysdeps/unix/sysv/linux/bits/termios.h (IGNBRK, BRKINT, IGNPAR, PARMRK,
> 	INPCK, ISTRIP, INLCR, IGNCR, ICRNL, IXON, IXOFF, IXANY, IUCLC, IMAXBEL,
> 	IUTF8): Move to termios-c_iflag.h.
> 	* sysdeps/unix/sysv/linux/alpha/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 +-
>  .../sysv/linux/alpha/bits/termios-c_iflag.h   | 38 ++++++++++++++++++
>  sysdeps/unix/sysv/linux/alpha/bits/termios.h  | 18 +--------
>  .../unix/sysv/linux/bits/termios-c_iflag.h    | 40 +++++++++++++++++++
>  sysdeps/unix/sysv/linux/bits/termios.h        | 18 +--------
>  sysdeps/unix/sysv/linux/mips/bits/termios.h   | 18 +--------
>  .../sysv/linux/powerpc/bits/termios-c_iflag.h | 38 ++++++++++++++++++
>  .../unix/sysv/linux/powerpc/bits/termios.h    | 18 +--------
>  sysdeps/unix/sysv/linux/sparc/bits/termios.h  | 18 +--------
>  9 files changed, 123 insertions(+), 86 deletions(-)
>  create mode 100644 sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h
>  create mode 100644 sysdeps/unix/sysv/linux/bits/termios-c_iflag.h
>  create mode 100644 sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h
> 
> diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
> index ace8dcb631..2f5a59cb11 100644
> --- a/sysdeps/unix/sysv/linux/Makefile
> +++ b/sysdeps/unix/sysv/linux/Makefile
> @@ -43,7 +43,8 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
>  		  bits/siginfo-arch.h bits/siginfo-consts-arch.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/msq-pad.h bits/termios-struct.h bits/termios-c_cc.h \
> +		  bits/termios-c_iflag.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-c_iflag.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h
> new file mode 100644
> index 0000000000..11584250d5
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_iflag.h
> @@ -0,0 +1,38 @@
> +/* termios input mode 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-c_iflags.h> directly; use <termios.h> instead."
> +#endif
> +
> +/* c_iflag bits */
> +#define IGNBRK	0000001
> +#define BRKINT	0000002
> +#define IGNPAR	0000004
> +#define PARMRK	0000010
> +#define INPCK	0000020
> +#define ISTRIP	0000040
> +#define INLCR	0000100
> +#define IGNCR	0000200
> +#define ICRNL	0000400
> +#define IXON	0001000
> +#define IXOFF	0002000
> +#define IXANY	0004000
> +#define IUCLC	0010000
> +#define IMAXBEL	0020000
> +#define IUTF8	0040000
> diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios.h b/sysdeps/unix/sysv/linux/alpha/bits/termios.h
> index 25159890b5..4d49c66aa8 100644
> --- a/sysdeps/unix/sysv/linux/alpha/bits/termios.h
> +++ b/sysdeps/unix/sysv/linux/alpha/bits/termios.h
> @@ -26,23 +26,7 @@ typedef unsigned int	tcflag_t;
>  
>  #include <bits/termios-struct.h>
>  #include <bits/termios-c_cc.h>
> -
> -/* c_iflag bits */
> -#define IGNBRK	0000001
> -#define BRKINT	0000002
> -#define IGNPAR	0000004
> -#define PARMRK	0000010
> -#define INPCK	0000020
> -#define ISTRIP	0000040
> -#define INLCR	0000100
> -#define IGNCR	0000200
> -#define ICRNL	0000400
> -#define IXON	0001000
> -#define IXOFF	0002000
> -#define IXANY	0004000
> -#define IUCLC	0010000
> -#define IMAXBEL	0020000
> -#define IUTF8	0040000
> +#include <bits/termios-c_iflag.h>
>  
>  /* c_oflag bits */
>  #define OPOST	0000001
> diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_iflag.h b/sysdeps/unix/sysv/linux/bits/termios-c_iflag.h
> new file mode 100644
> index 0000000000..c365b82262
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/bits/termios-c_iflag.h
> @@ -0,0 +1,40 @@
> +/* termios input mode 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-ciflags.h> directly; use <termios.h> instead."
> +#endif
> +
> +/* c_iflag bits */
> +#define IGNBRK	0000001  /* Ignore break condition.  */
> +#define BRKINT	0000002  /* Signal interrupt on break.  */
> +#define IGNPAR	0000004  /* Ignore characters with parity errors.  */
> +#define PARMRK	0000010  /* Mark parity and framing errors.  */
> +#define INPCK	0000020  /* Enable input parity check.  */
> +#define ISTRIP	0000040  /* Strip 8th bit off characters.  */
> +#define INLCR	0000100  /* Map NL to CR on input.  */
> +#define IGNCR	0000200  /* Ignore CR.  */
> +#define ICRNL	0000400  /* Map CR to NL on input.  */
> +#define IUCLC	0001000  /* Map uppercase characters to lowercase on input
> +			    (not in POSIX).  */
> +#define IXON	0002000  /* Enable start/stop output control.  */
> +#define IXANY	0004000  /* Enable any character to restart output.  */
> +#define IXOFF	0010000  /* Enable start/stop input control.  */
> +#define IMAXBEL	0020000  /* Ring bell when input queue is full
> +			    (not in POSIX).  */
> +#define IUTF8	0040000  /* Input is UTF8 (not in POSIX).  */
> diff --git a/sysdeps/unix/sysv/linux/bits/termios.h b/sysdeps/unix/sysv/linux/bits/termios.h
> index 1fba973734..6ce5c56049 100644
> --- a/sysdeps/unix/sysv/linux/bits/termios.h
> +++ b/sysdeps/unix/sysv/linux/bits/termios.h
> @@ -26,23 +26,7 @@ typedef unsigned int	tcflag_t;
>  
>  #include <bits/termios-struct.h>
>  #include <bits/termios-c_cc.h>
> -
> -/* c_iflag bits */
> -#define IGNBRK	0000001
> -#define BRKINT	0000002
> -#define IGNPAR	0000004
> -#define PARMRK	0000010
> -#define INPCK	0000020
> -#define ISTRIP	0000040
> -#define INLCR	0000100
> -#define IGNCR	0000200
> -#define ICRNL	0000400
> -#define IUCLC	0001000
> -#define IXON	0002000
> -#define IXANY	0004000
> -#define IXOFF	0010000
> -#define IMAXBEL	0020000
> -#define IUTF8	0040000
> +#include <bits/termios-c_iflag.h>
>  
>  /* c_oflag bits */
>  #define OPOST	0000001
> diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios.h b/sysdeps/unix/sysv/linux/mips/bits/termios.h
> index 1153763ae8..a8a37ff176 100644
> --- a/sysdeps/unix/sysv/linux/mips/bits/termios.h
> +++ b/sysdeps/unix/sysv/linux/mips/bits/termios.h
> @@ -26,23 +26,7 @@ typedef unsigned int	tcflag_t;
>  
>  #include <bits/termios-struct.h>
>  #include <bits/termios-c_cc.h>
> -
> -/* c_iflag bits */
> -#define IGNBRK	0000001		/* Ignore break condition.  */
> -#define BRKINT	0000002		/* Signal interrupt on break.  */
> -#define IGNPAR	0000004		/* Ignore characters with parity errors.  */
> -#define PARMRK	0000010		/* Mark parity and framing errors.  */
> -#define INPCK	0000020		/* Enable input parity check.  */
> -#define ISTRIP	0000040		/* Strip 8th bit off characters.  */
> -#define INLCR	0000100		/* Map NL to CR on input.  */
> -#define IGNCR	0000200		/* Ignore CR.  */
> -#define ICRNL	0000400		/* Map CR to NL on input.  */
> -#define IUCLC	0001000		/* Map upper case to lower case on input.  */
> -#define IXON	0002000		/* Enable start/stop output control.  */
> -#define IXANY	0004000		/* Any character will restart after stop.  */
> -#define IXOFF	0010000		/* Enable start/stop input control.  */
> -#define IMAXBEL 0020000		/* Ring bell when input queue is full.  */
> -#define IUTF8	0040000		/* Input is UTF8.  */
> +#include <bits/termios-c_iflag.h>
>  
>  /* c_oflag bits */
>  #define OPOST	0000001		/* Perform output processing.  */
> diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h
> new file mode 100644
> index 0000000000..c728b4d110
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_iflag.h
> @@ -0,0 +1,38 @@
> +/* termios input mode 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-c_iflags.h> directly; use <termios.h> instead."
> +#endif
> +
> +/* c_iflag bits */
> +#define IGNBRK	0000001
> +#define BRKINT	0000002
> +#define IGNPAR	0000004
> +#define PARMRK	0000010
> +#define INPCK	0000020
> +#define ISTRIP	0000040
> +#define INLCR	0000100
> +#define IGNCR	0000200
> +#define ICRNL	0000400
> +#define IXON	0001000
> +#define IXOFF	0002000
> +#define IXANY	0004000
> +#define IUCLC	0010000
> +#define IMAXBEL	0020000
> +#define IUTF8	0040000
> diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios.h
> index 2253143734..4ccabd7095 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/bits/termios.h
> +++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios.h
> @@ -25,23 +25,7 @@ typedef unsigned int	tcflag_t;
>  
>  #include <bits/termios-struct.h>
>  #include <bits/termios-c_cc.h>
> -
> -/* c_iflag bits */
> -#define IGNBRK	0000001
> -#define BRKINT	0000002
> -#define IGNPAR	0000004
> -#define PARMRK	0000010
> -#define INPCK	0000020
> -#define ISTRIP	0000040
> -#define INLCR	0000100
> -#define IGNCR	0000200
> -#define ICRNL	0000400
> -#define IXON	0001000
> -#define IXOFF	0002000
> -#define IXANY	0004000
> -#define IUCLC	0010000
> -#define IMAXBEL	0020000
> -#define IUTF8	0040000
> +#include <bits/termios-c_iflag.h>
>  
>  /* c_oflag bits */
>  #define OPOST	0000001
> diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios.h b/sysdeps/unix/sysv/linux/sparc/bits/termios.h
> index a2588c2158..4123ed7aaa 100644
> --- a/sysdeps/unix/sysv/linux/sparc/bits/termios.h
> +++ b/sysdeps/unix/sysv/linux/sparc/bits/termios.h
> @@ -26,23 +26,7 @@ typedef unsigned int tcflag_t;
>  
>  #include <bits/termios-struct.h>
>  #include <bits/termios-c_cc.h>
> -
> -/* c_iflag bits */
> -#define IGNBRK	0x00000001
> -#define BRKINT	0x00000002
> -#define IGNPAR	0x00000004
> -#define PARMRK	0x00000008
> -#define INPCK	0x00000010
> -#define ISTRIP	0x00000020
> -#define INLCR	0x00000040
> -#define IGNCR	0x00000080
> -#define ICRNL	0x00000100
> -#define IUCLC	0x00000200
> -#define IXON	0x00000400
> -#define IXANY	0x00000800
> -#define IXOFF	0x00001000
> -#define IMAXBEL	0x00002000
> -#define IUTF8	0x00004000
> +#include <bits/termios-c_iflag.h>
>  
>  /* c_oflag bits */
>  #define OPOST	0x00000001
> 


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