Change arm_objfile_data_key to use type-safe registry
[external/binutils.git] / gdb / inflow.h
1 /* Low level interface to ptrace, for GDB when running under Unix.
2
3    Copyright (C) 2003-2019 Free Software Foundation, Inc.
4
5    This file is part of GDB.
6
7    This program is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 3 of the License, or
10    (at your option) any later version.
11
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16
17    You should have received a copy of the GNU General Public License
18    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19
20 #ifndef INFLOW_H
21 #define INFLOW_H
22
23 #include <unistd.h>
24 #include <signal.h>
25 #include "common/job-control.h"
26
27 /* RAII class used to ignore SIGTTOU in a scope.  */
28
29 class scoped_ignore_sigttou
30 {
31 public:
32   scoped_ignore_sigttou ()
33   {
34 #ifdef SIGTTOU
35     if (job_control)
36       m_osigttou = signal (SIGTTOU, SIG_IGN);
37 #endif
38   }
39
40   ~scoped_ignore_sigttou ()
41   {
42 #ifdef SIGTTOU
43     if (job_control)
44       signal (SIGTTOU, m_osigttou);
45 #endif
46   }
47
48   DISABLE_COPY_AND_ASSIGN (scoped_ignore_sigttou);
49
50 private:
51 #ifdef SIGTTOU
52   sighandler_t m_osigttou = NULL;
53 #endif
54 };
55
56 #endif /* inflow.h */