]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
termios: Consolidate local mode definitions
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 9 Oct 2018 18:34:31 +0000 (15:34 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 3 Jan 2019 11:32:12 +0000 (09:32 -0200)
This patch consolidates the termios symbolic constants used for local
mode with c_lflag 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, mips, 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 (sysdep_headers): Add
termios-c_lflag.h.
* sysdeps/unix/sysv/linux/bits/termios-c_lflag.h: New file.
* sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h: Likewise.
* sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h: Likewise.
* sysdeps/unix/sysv/linux/bits/termios.h (ISIG, ISCANON, ECHO, ECHOE,
ECHOK, ECHONL, NOFLSH, TOSTOP, IEXTEN): Move to termios-c_lflag.h.
[__USE_MISC || (__USE_XOPEN && !__USE_XOPEN2K)] (XCASE): Likewise.
[__USE_MISC] (ECHOCTL, ECHOPRT, ECHOKE, FLUSHO, PENDIN, EXTPROC):
Likewise.
* 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.

ChangeLog
sysdeps/unix/sysv/linux/Makefile
sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/alpha/bits/termios.h
sysdeps/unix/sysv/linux/bits/termios-c_lflag.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/bits/termios.h
sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/mips/bits/termios.h
sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/powerpc/bits/termios.h
sysdeps/unix/sysv/linux/sparc/bits/termios.h

index 47d1010230a0fdaccc404d40aadabc2ea3ccbad8..d9eb67433fce5e72ccb6214c69142fa99e8c151a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,21 @@
 2019-01-03  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
+       * sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Add
+       termios-c_lflag.h.
+       * sysdeps/unix/sysv/linux/bits/termios-c_lflag.h: New file.
+       * sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h: Likewise.
+       * sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h: Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h: Likewise.
+       * sysdeps/unix/sysv/linux/bits/termios.h (ISIG, ISCANON, ECHO, ECHOE,
+       ECHOK, ECHONL, NOFLSH, TOSTOP, IEXTEN): Move to termios-c_lflag.h.
+       [__USE_MISC || (__USE_XOPEN && !__USE_XOPEN2K)] (XCASE): Likewise.
+       [__USE_MISC] (ECHOCTL, ECHOPRT, ECHOKE, FLUSHO, PENDIN, EXTPROC):
+       Likewise.
+       * 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 (sysdep_headers): Add
        termios-c_cflag.h.
        * sysdeps/unix/sysv/linux/bits/termios-c_cflag.h: New file.
index 9186e3af963780d3a03ed037609b07ac762af594..bd17a574bae369d2459e4a8bc334907a7f9aee20 100644 (file)
@@ -46,7 +46,8 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h \
                  bits/msq-pad.h bits/sem-pad.h bits/shmlba.h bits/shm-pad.h \
                  bits/termios-struct.h bits/termios-c_cc.h \
                  bits/termios-c_iflag.h bits/termios-c_oflag.h \
-                 bits/termios-baud.h bits/termios-c_cflag.h
+                 bits/termios-baud.h bits/termios-c_cflag.h \
+                 bits/termios-c_lflag.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_lflag.h b/sysdeps/unix/sysv/linux/alpha/bits/termios-c_lflag.h
new file mode 100644 (file)
index 0000000..7b12d7e
--- /dev/null
@@ -0,0 +1,42 @@
+/* termios local mode definitions.  Linux/alpha version.
+   Copyright (C) 2019 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_lflag.h> directly; use <termios.h> instead."
+#endif
+
+/* c_lflag bits */
+#define ISIG   0x00000080
+#define ICANON 0x00000100
+#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
+# define XCASE 0x00004000
+#endif
+#define ECHO   0x00000008
+#define ECHOE  0x00000002
+#define ECHOK  0x00000004
+#define ECHONL 0x00000010
+#define NOFLSH 0x80000000
+#define TOSTOP 0x00400000
+#ifdef __USE_MISC
+# define ECHOCTL       0x00000040
+# define ECHOPRT       0x00000020
+# define ECHOKE        0x00000001
+# define FLUSHO        0x00800000
+# define PENDIN        0x20000000
+#endif
+#define IEXTEN 0x00000400
index 59cb224914edd514356060cc0829c7fb3330a2d4..95e40d8000f1ed7b099439fbe74fc895d043c334 100644 (file)
@@ -53,27 +53,7 @@ typedef unsigned int tcflag_t;
 #include <bits/termios-baud.h>
 
 #include <bits/termios-c_cflag.h>
-
-/* c_lflag bits */
-#define ISIG   0x00000080
-#define ICANON 0x00000100
-#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
-# define XCASE 0x00004000
-#endif
-#define ECHO   0x00000008
-#define ECHOE  0x00000002
-#define ECHOK  0x00000004
-#define ECHONL 0x00000010
-#define NOFLSH 0x80000000
-#define TOSTOP 0x00400000
-#ifdef __USE_MISC
-# define ECHOCTL       0x00000040
-# define ECHOPRT       0x00000020
-# define ECHOKE        0x00000001
-# define FLUSHO        0x00800000
-# define PENDIN        0x20000000
-#endif
-#define IEXTEN 0x00000400
+#include <bits/termios-c_lflag.h>
 
 /* Values for the ACTION argument to `tcflow'.  */
 #define        TCOOFF          0
diff --git a/sysdeps/unix/sysv/linux/bits/termios-c_lflag.h b/sysdeps/unix/sysv/linux/bits/termios-c_lflag.h
new file mode 100644 (file)
index 0000000..6e17708
--- /dev/null
@@ -0,0 +1,58 @@
+/* termios local mode definitions.  Linux/generic version.
+   Copyright (C) 2019 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_lflag.h> directly; use <termios.h> instead."
+#endif
+
+/* c_lflag bits */
+#define ISIG   0000001   /* Enable signals.  */
+#define ICANON 0000002   /* Canonical input (erase and kill processing).  */
+#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
+# define XCASE 0000004
+#endif
+#define ECHO   0000010   /* Enable echo.  */
+#define ECHOE  0000020   /* Echo erase character as error-correcting
+                            backspace.  */
+#define ECHOK  0000040   /* Echo KILL.  */
+#define ECHONL 0000100   /* Echo NL.  */
+#define NOFLSH 0000200   /* Disable flush after interrupt or quit.  */
+#define TOSTOP 0000400   /* Send SIGTTOU for background output.  */
+#ifdef __USE_MISC
+# define ECHOCTL 0001000  /* If ECHO is also set, terminal special characters
+                            other than TAB, NL, START, and STOP are echoed as
+                            ^X, where X is the character with ASCII code 0x40
+                            greater than the special character
+                            (not in POSIX).  */
+# define ECHOPRT 0002000  /* If ICANON and ECHO are also set, characters are
+                            printed as they are being erased
+                            (not in POSIX).  */
+# define ECHOKE         0004000  /* If ICANON is also set, KILL is echoed by erasing
+                            each character on the line, as specified by ECHOE
+                            and ECHOPRT (not in POSIX).  */
+# define FLUSHO         0010000  /* Output is being flushed.  This flag is toggled by
+                            typing the DISCARD character (not in POSIX).  */
+# define PENDIN         0040000  /* All characters in the input queue are reprinted
+                            when the next character is read
+                            (not in POSIX).  */
+#endif
+#define IEXTEN 0100000   /* Enable implementation-defined input
+                            processing.  */
+#ifdef __USE_MISC
+# define EXTPROC 0200000
+#endif
index 0ec195d44f04fe519bfd548d506b0c9d8002f2aa..e74618df226cb37e1b9302c18fb2ea07e38d19e6 100644 (file)
@@ -53,30 +53,7 @@ typedef unsigned int tcflag_t;
 #include <bits/termios-baud.h>
 
 #include <bits/termios-c_cflag.h>
-
-/* c_lflag bits */
-#define ISIG   0000001
-#define ICANON 0000002
-#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
-# define XCASE 0000004
-#endif
-#define ECHO   0000010
-#define ECHOE  0000020
-#define ECHOK  0000040
-#define ECHONL 0000100
-#define NOFLSH 0000200
-#define TOSTOP 0000400
-#ifdef __USE_MISC
-# define ECHOCTL 0001000
-# define ECHOPRT 0002000
-# define ECHOKE         0004000
-# define FLUSHO         0010000
-# define PENDIN         0040000
-#endif
-#define IEXTEN 0100000
-#ifdef __USE_MISC
-# define EXTPROC 0200000
-#endif
+#include <bits/termios-c_lflag.h>
 
 #ifdef __USE_MISC
 /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h b/sysdeps/unix/sysv/linux/mips/bits/termios-c_lflag.h
new file mode 100644 (file)
index 0000000..25fcd38
--- /dev/null
@@ -0,0 +1,46 @@
+/* termios local mode definitions.  Linux/mips version.
+   Copyright (C) 2019 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_lflag.h> directly; use <termios.h> instead."
+#endif
+
+/* c_lflag bits */
+#define ISIG   0000001         /* Enable signals.  */
+#define ICANON 0000002         /* Do erase and kill processing.  */
+#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
+# define XCASE 0000004
+#endif
+#define ECHO   0000010         /* Enable echo.  */
+#define ECHOE  0000020         /* Visual erase for ERASE.  */
+#define ECHOK  0000040         /* Echo NL after KILL.  */
+#define ECHONL 0000100         /* Echo NL even if ECHO is off.  */
+#define NOFLSH 0000200         /* Disable flush after interrupt.  */
+#define IEXTEN 0000400         /* Enable DISCARD and LNEXT.  */
+#ifdef __USE_MISC
+# define ECHOCTL 0001000       /* Echo control characters as ^X.  */
+# define ECHOPRT 0002000       /* Hardcopy visual erase.  */
+# define ECHOKE         0004000        /* Visual erase for KILL.  */
+# define FLUSHO        0020000
+# define PENDIN        0040000         /* Retype pending input (state).  */
+#endif
+#define TOSTOP 0100000         /* Send SIGTTOU for background output.  */
+#define ITOSTOP        TOSTOP
+#ifdef __USE_MISC
+# define EXTPROC 0200000
+#endif
index 443283f6d3614d21db61eac42f6bd22deacbbfc3..8f6c918668e7cbb88d4789cf1970d79e901fab04 100644 (file)
@@ -53,31 +53,7 @@ typedef unsigned int tcflag_t;
 #include <bits/termios-baud.h>
 
 #include <bits/termios-c_cflag.h>
-
-/* c_lflag bits */
-#define ISIG   0000001         /* Enable signals.  */
-#define ICANON 0000002         /* Do erase and kill processing.  */
-#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
-# define XCASE 0000004
-#endif
-#define ECHO   0000010         /* Enable echo.  */
-#define ECHOE  0000020         /* Visual erase for ERASE.  */
-#define ECHOK  0000040         /* Echo NL after KILL.  */
-#define ECHONL 0000100         /* Echo NL even if ECHO is off.  */
-#define NOFLSH 0000200         /* Disable flush after interrupt.  */
-#define IEXTEN 0000400         /* Enable DISCARD and LNEXT.  */
-#ifdef __USE_MISC
-# define ECHOCTL 0001000       /* Echo control characters as ^X.  */
-# define ECHOPRT 0002000       /* Hardcopy visual erase.  */
-# define ECHOKE         0004000        /* Visual erase for KILL.  */
-# define FLUSHO        0020000
-# define PENDIN        0040000         /* Retype pending input (state).  */
-#endif
-#define TOSTOP 0100000         /* Send SIGTTOU for background output.  */
-#define ITOSTOP        TOSTOP
-#ifdef __USE_MISC
-# define EXTPROC 0200000
-#endif
+#include <bits/termios-c_lflag.h>
 
 #ifdef __USE_MISC
 /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios-c_lflag.h
new file mode 100644 (file)
index 0000000..e553787
--- /dev/null
@@ -0,0 +1,45 @@
+/* termios local mode definitions.  Linux/powerpc version.
+   Copyright (C) 2019i 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_lflag.h> directly; use <termios.h> instead."
+#endif
+
+/* c_lflag bits */
+#define ISIG   0x00000080
+#define ICANON 0x00000100
+#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
+# define XCASE 0x00004000
+#endif
+#define ECHO   0x00000008
+#define ECHOE  0x00000002
+#define ECHOK  0x00000004
+#define ECHONL 0x00000010
+#define NOFLSH 0x80000000
+#define TOSTOP 0x00400000
+#ifdef __USE_MISC
+# define ECHOCTL       0x00000040
+# define ECHOPRT       0x00000020
+# define ECHOKE        0x00000001
+# define FLUSHO        0x00800000
+# define PENDIN        0x20000000
+#endif
+#define IEXTEN 0x00000400
+#ifdef __USE_MISC
+# define EXTPROC 0x10000000
+#endif
index 8b6cbf5b2c0a278033e959e7cc23438b26a007f7..65dad319d54feb4dc8e5ba9d2231f76bf43ee63b 100644 (file)
@@ -52,30 +52,7 @@ typedef unsigned int tcflag_t;
 #include <bits/termios-baud.h>
 
 #include <bits/termios-c_cflag.h>
-
-/* c_lflag bits */
-#define ISIG   0x00000080
-#define ICANON 0x00000100
-#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
-# define XCASE 0x00004000
-#endif
-#define ECHO   0x00000008
-#define ECHOE  0x00000002
-#define ECHOK  0x00000004
-#define ECHONL 0x00000010
-#define NOFLSH 0x80000000
-#define TOSTOP 0x00400000
-#ifdef __USE_MISC
-# define ECHOCTL       0x00000040
-# define ECHOPRT       0x00000020
-# define ECHOKE        0x00000001
-# define FLUSHO        0x00800000
-# define PENDIN        0x20000000
-#endif
-#define IEXTEN 0x00000400
-#ifdef __USE_MISC
-# define EXTPROC 0x10000000
-#endif
+#include <bits/termios-c_lflag.h>
 
 /* Values for the ACTION argument to `tcflow'.  */
 #define        TCOOFF          0
index 32d942426378222a3aa81a643f68f37b33ef86aa..12dc7061fecfa9db9e93d96ef40c209439aaa983 100644 (file)
@@ -53,31 +53,7 @@ typedef unsigned int tcflag_t;
 #include <bits/termios-baud.h>
 
 #include <bits/termios-c_cflag.h>
-
-/* c_lflag bits */
-#define ISIG   0x00000001
-#define ICANON 0x00000002
-#if defined __USE_MISC || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
-# define XCASE 0x00000004
-#endif
-#define ECHO   0x00000008
-#define ECHOE  0x00000010
-#define ECHOK  0x00000020
-#define ECHONL 0x00000040
-#define NOFLSH 0x00000080
-#define TOSTOP 0x00000100
-#ifdef __USE_MISC
-# define ECHOCTL       0x00000200
-# define ECHOPRT       0x00000400
-# define ECHOKE                0x00000800
-# define DEFECHO       0x00001000      /* SUNOS thing, what is it? */
-# define FLUSHO                0x00002000
-# define PENDIN                0x00004000
-#endif
-#define IEXTEN 0x00008000
-#ifdef __USE_MISC
-# define EXTPROC 0x00010000
-#endif
+#include <bits/termios-c_lflag.h>
 
 #ifdef __USE_MISC
 /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */