diff mbox series

[04/12] termios: Consolidate Input Modes definitions.

Message ID 20181015204956.25558-4-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 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

-- 
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 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

>
Gabriel F. T. Gomes Nov. 9, 2018, 3:07 p.m. UTC | #2
On Mon, 15 Oct 2018, 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).


Doesn't sparc need special treatment, too?

>--- /dev/null

>+++ b/sysdeps/unix/sysv/linux/bits/termios-c_iflag.h

>@@ -0,0 +1,40 @@

> [...]

>+/* 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).  */


The generic defines...

>--- 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;

> [...]

>-/* 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>


Look different than what sparc used to have.
Adhemerval Zanella Nov. 9, 2018, 5:20 p.m. UTC | #3
On 09/11/2018 13:07, Gabriel F. T. Gomes wrote:
> On Mon, 15 Oct 2018, 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).

> 

> Doesn't sparc need special treatment, too?

> 

>> --- /dev/null

>> +++ b/sysdeps/unix/sysv/linux/bits/termios-c_iflag.h

>> @@ -0,0 +1,40 @@

>> [...]

>> +/* 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).  */

> 

> The generic defines...

> 

>> --- 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;

>> [...]

>> -/* 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>

> 

> Look different than what sparc used to have.

> 


They are essentially the same values for all constants, sparc just define them
in hexa instead of octal.
diff mbox series

Patch

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