This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH 03/12] termios: Consolidate termios c_cc symbolic constants
- From: Adhemerval Zanella <adhemerval dot zanella at linaro dot org>
- To: libc-alpha at sourceware dot org
- Date: Tue, 6 Nov 2018 15:14:39 -0200
- Subject: Re: [PATCH 03/12] termios: Consolidate termios c_cc symbolic constants
- References: <20181015204956.25558-1-adhemerval.zanella@linaro.org> <20181015204956.25558-3-adhemerval.zanella@linaro.org>
Ping.
On 15/10/2018 17:49, Adhemerval Zanella wrote:
> This patch consolidates the termios symbolic constants used as subscript
> for the array c_cc 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, mips64, and sparc64).
>
> 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-cc.h.
> * sysdeps/unix/sysv/linux/bits/termios-c_cc.h: Likewise.
> * sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h: New file.
> * sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h: Likewise.
> * sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h: Likewise.
> * sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h: Likewise.
> * sysdeps/unix/sysv/linux/bits/termios.h (VINTR, VQUIT, VERASE,
> VKILL, VEOF, VTIME, VMIN, VSWTC, VSTART, VSTOP, VSUSP, VEOL,
> VREPRINT, VDISCARD, VWERASE, VLNEXT, VEOLF2): Move to termios-cc.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 | 2 +-
> .../unix/sysv/linux/alpha/bits/termios-c_cc.h | 40 +++++++++++++++++
> sysdeps/unix/sysv/linux/alpha/bits/termios.h | 20 +--------
> sysdeps/unix/sysv/linux/bits/termios-c_cc.h | 40 +++++++++++++++++
> sysdeps/unix/sysv/linux/bits/termios.h | 20 +--------
> .../unix/sysv/linux/mips/bits/termios-c_cc.h | 43 +++++++++++++++++++
> sysdeps/unix/sysv/linux/mips/bits/termios.h | 23 +---------
> .../sysv/linux/powerpc/bits/termios-c_cc.h | 41 ++++++++++++++++++
> .../unix/sysv/linux/powerpc/bits/termios.h | 21 +--------
> .../unix/sysv/linux/sparc/bits/termios-c_cc.h | 43 +++++++++++++++++++
> sysdeps/unix/sysv/linux/sparc/bits/termios.h | 23 +---------
> 11 files changed, 213 insertions(+), 103 deletions(-)
> create mode 100644 sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h
> create mode 100644 sysdeps/unix/sysv/linux/bits/termios-c_cc.h
> create mode 100644 sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h
> create mode 100644 sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h
> create mode 100644 sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h
>
> diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
> index 184a5b19e1..ace8dcb631 100644
> --- a/sysdeps/unix/sysv/linux/Makefile
> +++ b/sysdeps/unix/sysv/linux/Makefile
> @@ -43,7 +43,7 @@ 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/msq-pad.h bits/termios-struct.h bits/termios-c_cc.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_cc.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h
> new file mode 100644
> index 0000000000..9ad1336ef6
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_cc.h
> @@ -0,0 +1,40 @@
> +/* termios c_cc symbolic constant 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_cc.h> directly; use <termios.h> instead."
> +#endif
> +
> +/* c_cc characters */
> +#define VEOF 0
> +#define VEOL 1
> +#define VEOL2 2
> +#define VERASE 3
> +#define VWERASE 4
> +#define VKILL 5
> +#define VREPRINT 6
> +#define VSWTC 7
> +#define VINTR 8
> +#define VQUIT 9
> +#define VSUSP 10
> +#define VSTART 12
> +#define VSTOP 13
> +#define VLNEXT 14
> +#define VDISCARD 15
> +#define VMIN 16
> +#define VTIME 17
> diff --git a/sysdeps/unix/sysv/linux/alpha/bits/termios.h b/sysdeps/unix/sysv/linux/alpha/bits/termios.h
> index fe358dd8f5..25159890b5 100644
> --- a/sysdeps/unix/sysv/linux/alpha/bits/termios.h
> +++ b/sysdeps/unix/sysv/linux/alpha/bits/termios.h
> @@ -25,25 +25,7 @@ typedef unsigned int speed_t;
> typedef unsigned int tcflag_t;
>
> #include <bits/termios-struct.h>
> -
> -/* c_cc characters */
> -#define VEOF 0
> -#define VEOL 1
> -#define VEOL2 2
> -#define VERASE 3
> -#define VWERASE 4
> -#define VKILL 5
> -#define VREPRINT 6
> -#define VSWTC 7
> -#define VINTR 8
> -#define VQUIT 9
> -#define VSUSP 10
> -#define VSTART 12
> -#define VSTOP 13
> -#define VLNEXT 14
> -#define VDISCARD 15
> -#define VMIN 16
> -#define VTIME 17
> +#include <bits/termios-c_cc.h>
>
> /* c_iflag bits */
> #define IGNBRK 0000001
> diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/bits/termios-c_cc.h
> new file mode 100644
> index 0000000000..80d5e6d2ce
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/bits/termios-c_cc.h
> @@ -0,0 +1,40 @@
> +/* termios c_cc symbolic constant 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_c_cc.h> directly; use <termios.h> instead."
> +#endif
> +
> +/* c_cc characters */
> +#define VINTR 0
> +#define VQUIT 1
> +#define VERASE 2
> +#define VKILL 3
> +#define VEOF 4
> +#define VTIME 5
> +#define VMIN 6
> +#define VSWTC 7
> +#define VSTART 8
> +#define VSTOP 9
> +#define VSUSP 10
> +#define VEOL 11
> +#define VREPRINT 12
> +#define VDISCARD 13
> +#define VWERASE 14
> +#define VLNEXT 15
> +#define VEOL2 16
> diff --git a/sysdeps/unix/sysv/linux/bits/termios.h b/sysdeps/unix/sysv/linux/bits/termios.h
> index 93536130aa..1fba973734 100644
> --- a/sysdeps/unix/sysv/linux/bits/termios.h
> +++ b/sysdeps/unix/sysv/linux/bits/termios.h
> @@ -25,25 +25,7 @@ typedef unsigned int speed_t;
> typedef unsigned int tcflag_t;
>
> #include <bits/termios-struct.h>
> -
> -/* c_cc characters */
> -#define VINTR 0
> -#define VQUIT 1
> -#define VERASE 2
> -#define VKILL 3
> -#define VEOF 4
> -#define VTIME 5
> -#define VMIN 6
> -#define VSWTC 7
> -#define VSTART 8
> -#define VSTOP 9
> -#define VSUSP 10
> -#define VEOL 11
> -#define VREPRINT 12
> -#define VDISCARD 13
> -#define VWERASE 14
> -#define VLNEXT 15
> -#define VEOL2 16
> +#include <bits/termios-c_cc.h>
>
> /* c_iflag bits */
> #define IGNBRK 0000001
> diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h
> new file mode 100644
> index 0000000000..573efbc9d3
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/mips/bits/termios-c_cc.h
> @@ -0,0 +1,43 @@
> +/* termios c_cc symbolic constant definitions. Linux/mips 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_cc.h> directly; use <termios.h> instead."
> +#endif
> +
> +/* c_cc characters */
> +#define VINTR 0 /* Interrupt character [ISIG]. */
> +#define VQUIT 1 /* Quit character [ISIG]. */
> +#define VERASE 2 /* Erase character [ICANON]. */
> +#define VKILL 3 /* Kill-line character [ICANON]. */
> +#define VMIN 4 /* Minimum number of bytes read at once [!ICANON]. */
> +#define VTIME 5 /* Time-out value (tenths of a second) [!ICANON]. */
> +#define VEOL2 6 /* Second EOL character [ICANON]. */
> +#define VSWTC 7
> +#define VSWTCH VSWTC
> +#define VSTART 8 /* Start (X-ON) character [IXON, IXOFF]. */
> +#define VSTOP 9 /* Stop (X-OFF) character [IXON, IXOFF]. */
> +#define VSUSP 10 /* Suspend character [ISIG]. */
> + /* VDSUSP is not supported on Linux. */
> +/* #define VDSUSP 11 / * Delayed suspend character [ISIG]. */
> +#define VREPRINT 12 /* Reprint-line character [ICANON]. */
> +#define VDISCARD 13 /* Discard character [IEXTEN]. */
> +#define VWERASE 14 /* Word-erase character [ICANON]. */
> +#define VLNEXT 15 /* Literal-next character [IEXTEN]. */
> +#define VEOF 16 /* End-of-file character [ICANON]. */
> +#define VEOL 17 /* End-of-line character [ICANON]. */
> diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios.h b/sysdeps/unix/sysv/linux/mips/bits/termios.h
> index 2b2f873f35..1153763ae8 100644
> --- a/sysdeps/unix/sysv/linux/mips/bits/termios.h
> +++ b/sysdeps/unix/sysv/linux/mips/bits/termios.h
> @@ -25,28 +25,7 @@ typedef unsigned int speed_t;
> typedef unsigned int tcflag_t;
>
> #include <bits/termios-struct.h>
> -
> -/* c_cc characters */
> -#define VINTR 0 /* Interrupt character [ISIG]. */
> -#define VQUIT 1 /* Quit character [ISIG]. */
> -#define VERASE 2 /* Erase character [ICANON]. */
> -#define VKILL 3 /* Kill-line character [ICANON]. */
> -#define VMIN 4 /* Minimum number of bytes read at once [!ICANON]. */
> -#define VTIME 5 /* Time-out value (tenths of a second) [!ICANON]. */
> -#define VEOL2 6 /* Second EOL character [ICANON]. */
> -#define VSWTC 7
> -#define VSWTCH VSWTC
> -#define VSTART 8 /* Start (X-ON) character [IXON, IXOFF]. */
> -#define VSTOP 9 /* Stop (X-OFF) character [IXON, IXOFF]. */
> -#define VSUSP 10 /* Suspend character [ISIG]. */
> - /* VDSUSP is not supported on Linux. */
> -/* #define VDSUSP 11 / * Delayed suspend character [ISIG]. */
> -#define VREPRINT 12 /* Reprint-line character [ICANON]. */
> -#define VDISCARD 13 /* Discard character [IEXTEN]. */
> -#define VWERASE 14 /* Word-erase character [ICANON]. */
> -#define VLNEXT 15 /* Literal-next character [IEXTEN]. */
> -#define VEOF 16 /* End-of-file character [ICANON]. */
> -#define VEOL 17 /* End-of-line character [ICANON]. */
> +#include <bits/termios-c_cc.h>
>
> /* c_iflag bits */
> #define IGNBRK 0000001 /* Ignore break condition. */
> diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h
> new file mode 100644
> index 0000000000..8c75e25339
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_cc.h
> @@ -0,0 +1,41 @@
> +/* termios c_cc symbolic constant 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_cc.h> directly; use <termios.h> instead."
> +#endif
> +
> +/* c_cc characters */
> +#define VINTR 0
> +#define VQUIT 1
> +#define VERASE 2
> +#define VKILL 3
> +#define VEOF 4
> +#define VMIN 5
> +#define VEOL 6
> +#define VTIME 7
> +#define VEOL2 8
> +#define VSWTC 9
> +
> +#define VWERASE 10
> +#define VREPRINT 11
> +#define VSUSP 12
> +#define VSTART 13
> +#define VSTOP 14
> +#define VLNEXT 15
> +#define VDISCARD 16
> diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios.h
> index ddb32bd7e5..2253143734 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/bits/termios.h
> +++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios.h
> @@ -24,26 +24,7 @@ typedef unsigned int speed_t;
> typedef unsigned int tcflag_t;
>
> #include <bits/termios-struct.h>
> -
> -/* c_cc characters */
> -#define VINTR 0
> -#define VQUIT 1
> -#define VERASE 2
> -#define VKILL 3
> -#define VEOF 4
> -#define VMIN 5
> -#define VEOL 6
> -#define VTIME 7
> -#define VEOL2 8
> -#define VSWTC 9
> -
> -#define VWERASE 10
> -#define VREPRINT 11
> -#define VSUSP 12
> -#define VSTART 13
> -#define VSTOP 14
> -#define VLNEXT 15
> -#define VDISCARD 16
> +#include <bits/termios-c_cc.h>
>
> /* c_iflag bits */
> #define IGNBRK 0000001
> diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h b/sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h
> new file mode 100644
> index 0000000000..09b504273b
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/sparc/bits/termios-c_cc.h
> @@ -0,0 +1,43 @@
> +/* termios c_cc symbolic constant definitions. Linux/sparc 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_cc.h> directly; use <termios.h> instead."
> +#endif
> +
> +/* c_cc characters */
> +#define VINTR 0
> +#define VQUIT 1
> +#define VERASE 2
> +#define VKILL 3
> +#define VEOF 4
> +#define VEOL 5
> +#define VEOL2 6
> +#define VSWTC 7
> +#define VSTART 8
> +#define VSTOP 9
> +#define VSUSP 10
> +#define VDSUSP 11 /* SunOS POSIX nicety I do believe... */
> +#define VREPRINT 12
> +#define VDISCARD 13
> +#define VWERASE 14
> +#define VLNEXT 15
> +
> +/* User apps assume vmin/vtime is shared with eof/eol */
> +#define VMIN VEOF
> +#define VTIME VEOL
> diff --git a/sysdeps/unix/sysv/linux/sparc/bits/termios.h b/sysdeps/unix/sysv/linux/sparc/bits/termios.h
> index 5fd6055c8e..a2588c2158 100644
> --- a/sysdeps/unix/sysv/linux/sparc/bits/termios.h
> +++ b/sysdeps/unix/sysv/linux/sparc/bits/termios.h
> @@ -25,28 +25,7 @@ typedef unsigned int speed_t;
> typedef unsigned int tcflag_t;
>
> #include <bits/termios-struct.h>
> -
> -/* c_cc characters */
> -#define VINTR 0
> -#define VQUIT 1
> -#define VERASE 2
> -#define VKILL 3
> -#define VEOF 4
> -#define VEOL 5
> -#define VEOL2 6
> -#define VSWTC 7
> -#define VSTART 8
> -#define VSTOP 9
> -#define VSUSP 10
> -#define VDSUSP 11 /* SunOS POSIX nicety I do believe... */
> -#define VREPRINT 12
> -#define VDISCARD 13
> -#define VWERASE 14
> -#define VLNEXT 15
> -
> -/* User apps assume vmin/vtime is shared with eof/eol */
> -#define VMIN VEOF
> -#define VTIME VEOL
> +#include <bits/termios-c_cc.h>
>
> /* c_iflag bits */
> #define IGNBRK 0x00000001
>