Merge branch 'master' into merge-job
[deliverable/binutils-gdb.git] / gdb / inflow.h
index 1cbfa71b484471b1d91df752ee897477c5601827..fe8c005be0db2500551e49a5b8606546c914d566 100644 (file)
@@ -1,12 +1,12 @@
 /* Low level interface to ptrace, for GDB when running under Unix.
 
-   Copyright 2003 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., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, 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
-#endif
+/* RAII class used to ignore SIGTTOU in a scope.  */
 
-#ifdef HAVE_TERMIO
-#define PROCESS_GROUP_TYPE int
+class scoped_ignore_sigttou
+{
+public:
+  scoped_ignore_sigttou ()
+  {
+#ifdef SIGTTOU
+    if (job_control)
+      m_osigttou = signal (SIGTTOU, SIG_IGN);
 #endif
+  }
 
-#ifdef HAVE_SGTTY
-#ifdef SHORT_PGRP
-/* This is only used for the ultra.  Does it have pid_t?  */
-#define PROCESS_GROUP_TYPE short
-#else
-#define PROCESS_GROUP_TYPE int
+  ~scoped_ignore_sigttou ()
+  {
+#ifdef SIGTTOU
+    if (job_control)
+      signal (SIGTTOU, m_osigttou);
 #endif
-#endif /* sgtty */
+  }
 
-#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;
-#endif
+  DISABLE_COPY_AND_ASSIGN (scoped_ignore_sigttou);
 
+private:
+#ifdef SIGTTOU
+  sighandler_t m_osigttou = NULL;
 #endif
+};
+
+#endif /* inflow.h */
This page took 0.025449 seconds and 4 git commands to generate.