This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 04/12] termios: Consolidate Input Modes definitions.
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Tue, 6 Nov 2018 15:14:43 -0200
- Subject: Re: [PATCH 04/12] termios: Consolidate Input Modes definitions.
- References: <20181015204956.25558-1-adhemerval.zanella@linaro.org> <20181015204956.25558-4-adhemerval.zanella@linaro.org>
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
>