X-Git-Url: http://drtracing.org/?a=blobdiff_plain;ds=sidebyside;f=gdb%2Finflow.h;h=fe8c005be0db2500551e49a5b8606546c914d566;hb=975f8708de015fb2b813edbf8b714f4777c57a41;hp=1cbfa71b484471b1d91df752ee897477c5601827;hpb=44270758cd8e51b26d4bf8c58f2d69f27225a71f;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/inflow.h b/gdb/inflow.h index 1cbfa71b48..fe8c005be0 100644 --- a/gdb/inflow.h +++ b/gdb/inflow.h @@ -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, @@ -15,37 +15,42 @@ 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 . */ #ifndef INFLOW_H #define INFLOW_H -#include "terminal.h" /* For HAVE_TERMIOS et.al. */ +#include +#include +#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 */