/* Low level interface to ptrace, for GDB when running under Unix.
- Copyright (C) 1986-2018 Free Software Foundation, Inc.
+ Copyright (C) 1986-2019 Free Software Foundation, Inc.
This file is part of GDB.
#ifdef HAVE_TERMIOS_H
#include <termios.h>
#endif
-#include "job-control.h"
+#include "common/job-control.h"
#ifdef HAVE_SYS_IOCTL_H
#include <sys/ioctl.h>
to SIG_IGN. */
static sighandler_t sigint_ours;
+#ifdef SIGQUIT
static sighandler_t sigquit_ours;
+#endif
/* The name of the tty (from the `tty' command) that we're giving to
the inferior when starting it up. This is only (and should only
child_interrupt (struct target_ops *self)
{
/* Interrupt the first inferior that has a resumed thread. */
- thread_info *thr;
thread_info *resumed = NULL;
- ALL_NON_EXITED_THREADS (thr)
+ for (thread_info *thr : all_non_exited_threads ())
{
if (thr->executing)
{
/* Otherwise, pass the Ctrl-C to the first inferior that was resumed
in the foreground. */
- inferior *inf;
- ALL_INFERIORS (inf)
+ for (inferior *inf : all_inferiors ())
{
if (inf->terminal_state != target_terminal_state::is_ours)
{
to->terminal_state = from->terminal_state;
}
+/* See terminal.h. */
+
+void
+swap_terminal_info (inferior *a, inferior *b)
+{
+ terminal_info *info_a
+ = (terminal_info *) inferior_data (a, inflow_inferior_data);
+ terminal_info *info_b
+ = (terminal_info *) inferior_data (a, inflow_inferior_data);
+
+ set_inferior_data (a, inflow_inferior_data, info_b);
+ set_inferior_data (b, inflow_inferior_data, info_a);
+
+ std::swap (a->terminal_state, b->terminal_state);
+}
+
void
info_terminal_command (const char *arg, int from_tty)
{
return;
}
- if (ptid_equal (inferior_ptid, null_ptid))
+ if (inferior_ptid == null_ptid)
return;
inf = current_inferior ();
void
new_tty (void)
{
- int tty;
-
if (inferior_thisrun_terminal == 0)
return;
#if !defined(__GO32__) && !defined(_WIN32)
+ int tty;
+
#ifdef TIOCNOTTY
/* Disconnect the child process from our controlling terminal. On some
systems (SVR4 for example), this may cause a SIGTTOU, so temporarily