39 #ifdef HAVE_SYS_IOCTL_H 40 #include <sys/ioctl.h> 103 m_osigttou = signal (SIGTTOU, SIG_IGN);
111 signal (SIGTTOU, m_osigttou);
119 sighandler_t m_osigttou = NULL;
123 #ifdef HAVE_TERMIOS_H 172 #ifdef HAVE_TERMIOS_H 188 #define OOPSY(what) \ 190 fprintf_unfiltered(gdb_stderr, "[%s failed in terminal_inferior: %s]\n", \ 191 what, safe_strerror (errno)) 202 #ifdef HAVE_TERMIOS_H 264 result = fcntl (0, F_SETFL, tinfo->
tflags);
265 OOPSY (
"fcntl F_SETFL");
269 OOPSY (
"setting tty state");
293 #ifdef HAVE_TERMIOS_H 295 if (!
inf->attach_flag)
361 int result ATTRIBUTE_UNUSED;
370 #ifdef HAVE_TERMIOS_H 371 if (!
inf->attach_flag)
383 #ifdef HAVE_TERMIOS_H 392 "[tcsetpgrp failed in child_terminal_ours: %s]\n",
407 tinfo->
tflags = fcntl (0, F_GETFL, 0);
476 *tinfo_to = *tinfo_from;
512 "(currently saved by GDB):\n"));
523 #define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR) 541 if (
flags & O_NONBLOCK)
543 flags &= ~O_NONBLOCK;
546 #if defined (O_NDELAY) 550 if (
flags & O_NDELAY)
555 if (
flags & O_APPEND)
559 #if defined (O_BINARY) 570 #ifdef HAVE_TERMIOS_H 594 #if !defined(__GO32__) && !defined(_WIN32) 616 #if !defined(__GO32__) && !defined(_WIN32) 621 tty = open (
"/dev/tty", O_RDWR);
626 ioctl (tty, TIOCNOTTY, 0);
654 if (ioctl (tty, TIOCSCTTY, 0) == -1)
657 warning (
_(
"GDB: Failed to set controlling terminal: %s"),
722 signal (SIGINT,
osig);
746 warning (
_(
"Failed to create new terminal session: setsid: %s"),
771 _(
"Print inferior's saved terminal status."));
void set_sigint_trap(void)
void child_terminal_info(struct target_ops *self, const char *args, int from_tty)
void serial_print_tty_state(struct serial *scb, serial_ttystate ttystate, struct ui_file *stream)
int ptid_get_pid(const ptid_t &ptid)
void new_tty_prefork(const char *ttyname)
void new_tty_postfork(void)
void warning(const char *fmt,...)
struct cmd_list_element * add_info(const char *name, cmd_const_cfunc_ftype *fun, const char *doc)
void print_sys_errmsg(const char *string, int errcode)
static void check_syscall(const char *msg, int result)
static int gdb_has_a_terminal(void)
void info_terminal_command(const char *arg, int from_tty)
struct observer * observer_attach_inferior_exit(observer_inferior_exit_ftype *f)
void set_initial_gdb_ttystate(void)
void printf_filtered(const char *format,...)
int serial_set_tty_state(struct serial *scb, serial_ttystate ttystate)
mach_port_t kern_return_t mach_port_t msgports mach_port_t kern_return_t pid_t pid mach_port_t kern_return_t mach_port_t task mach_port_t kern_return_t int flags
struct serial * serial_fdopen(const int fd)
static void child_terminal_ours_1(int)
void gdb_save_tty_state(void)
static struct terminal_info our_terminal_info
static const struct inferior_data * inflow_inferior_data
static void pass_signal(int)
void fprintf_unfiltered(struct ui_file *stream, const char *format,...)
DISABLE_COPY_AND_ASSIGN(scoped_ignore_sigttou)
static serial_ttystate initial_gdb_ttystate
void clear_sigint_trap(void)
pid_t inferior_process_group(void)
void _initialize_inflow(void)
static struct terminal_info * get_inflow_inferior_data(struct inferior *)
serial_ttystate serial_get_tty_state(struct serial *scb)
void child_terminal_init(struct target_ops *self)
static const char * inferior_thisrun_terminal
void initialize_stdin_serial(void)
static struct serial * stdin_serial
static void inflow_inferior_exit(struct inferior *inf)
void child_terminal_ours(struct target_ops *self)
serial_ttystate serial_copy_tty_state(struct serial *scb, serial_ttystate ttystate)
char * safe_strerror(int)
int ptid_equal(const ptid_t &ptid1, const ptid_t &ptid2)
static void inflow_inferior_data_cleanup(struct inferior *inf, void *arg)
struct inferior * current_inferior(void)
void child_terminal_ours_for_output(struct target_ops *self)
int tcsetpgrp(int fd, pid_t pgid)
void child_terminal_inferior(struct target_ops *self)
static void info(const char *arg, int from_tty)
pid_t create_tty_session(void)
void copy_terminal_info(struct inferior *to, struct inferior *from)
static sighandler_t sigint_ours
static sighandler_t sigquit_ours