diff mbox series

[03/12] termios: Consolidate termios c_cc symbolic constants

Message ID 20181015204956.25558-3-adhemerval.zanella@linaro.org
State Superseded
Headers show
Series [01/12] termios: Define TIOCSER_TEMT with __USE_MISC (BZ#17783) | expand

Commit Message

Adhemerval Zanella Oct. 15, 2018, 8:49 p.m. UTC
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

-- 
2.17.1

Comments

Adhemerval Zanella Nov. 6, 2018, 5:14 p.m. UTC | #1
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

>
Gabriel F. T. Gomes Nov. 9, 2018, 12:36 p.m. UTC | #2
>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).


Although I don't feel very qualified to review this patch set, one detail
caught my attention here.  You mentioned that alpha, mips64, and sparc64
have their own implementation, however, it looks like powerpc also does
(and you have carefully taken care of it, as I can see in the patch).

So, is the message missing a mention to powerpc, or is there something
else going on?

>> No semantic change is expected, checked on a build against x86_64-linux-gnu,

>> alpha-linux-gnu, mips64-linux-gnu, and sparc64-linux-gnu.


I started a build on a powerpc64 machine.

Other than the message not mentioning powerpc, the patch looks good, but,
as I mentioned previously, I don't think I'm qualified to review it.
Adhemerval Zanella Nov. 9, 2018, 1:31 p.m. UTC | #3
On 09/11/2018 10:36, Gabriel F. T. Gomes wrote:
>> 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).

> 

> Although I don't feel very qualified to review this patch set, one detail

> caught my attention here.  You mentioned that alpha, mips64, and sparc64

> have their own implementation, however, it looks like powerpc also does

> (and you have carefully taken care of it, as I can see in the patch).

> 

> So, is the message missing a mention to powerpc, or is there something

> else going on?


You are right, powerpc does have its own implementation and I will add
on patch description.

> 

>>> No semantic change is expected, checked on a build against x86_64-linux-gnu,

>>> alpha-linux-gnu, mips64-linux-gnu, and sparc64-linux-gnu.

> 

> I started a build on a powerpc64 machine.

> 

> Other than the message not mentioning powerpc, the patch looks good, but,

> as I mentioned previously, I don't think I'm qualified to review it.

> 


Thanks for checking on it.
diff mbox series

Patch

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