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 03/12] termios: Consolidate termios c_cc symbolic constants


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
> 


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