Pass -Wno-deprecated-register for gdb.cp that use "register"
[deliverable/binutils-gdb.git] / gdb / inflow.h
index 96ccf5a7dcced96d1b1b9354f4174f5e12a31e0c..fe8c005be0db2500551e49a5b8606546c914d566 100644 (file)
@@ -1,12 +1,12 @@
 /* Low level interface to ptrace, for GDB when running under Unix.
 
-   Copyright (C) 2003, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2003-2020 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef INFLOW_H
 #define INFLOW_H
 
-#include "terminal.h"          /* For HAVE_TERMIOS et.al.  */
+#include <unistd.h>
+#include <signal.h>
+#include "gdbsupport/job-control.h"
 
-#ifdef HAVE_TERMIOS
-# define PROCESS_GROUP_TYPE pid_t
-#elif defined (HAVE_TERMIO) || defined (HAVE_SGTTY)
-# define PROCESS_GROUP_TYPE int
+/* RAII class used to ignore SIGTTOU in a scope.  */
+
+class scoped_ignore_sigttou
+{
+public:
+  scoped_ignore_sigttou ()
+  {
+#ifdef SIGTTOU
+    if (job_control)
+      m_osigttou = signal (SIGTTOU, SIG_IGN);
+#endif
+  }
+
+  ~scoped_ignore_sigttou ()
+  {
+#ifdef SIGTTOU
+    if (job_control)
+      signal (SIGTTOU, m_osigttou);
 #endif
+  }
+
+  DISABLE_COPY_AND_ASSIGN (scoped_ignore_sigttou);
 
-#ifdef PROCESS_GROUP_TYPE
-/* Process group for us and the inferior.  Saved and restored just like
-   {our,inferior}_ttystate.  */
-extern PROCESS_GROUP_TYPE our_process_group;
-extern PROCESS_GROUP_TYPE inferior_process_group;
+private:
+#ifdef SIGTTOU
+  sighandler_t m_osigttou = NULL;
 #endif
+};
 
 #endif /* inflow.h */
This page took 0.025174 seconds and 4 git commands to generate.