forked from Imagelibrary/binutils-gdb
* NEWS: Mention native Windows support.
* Makefile.in (gdb_select_h, ser_tcp_h): New. (ALLDEPFILES): Add ser-mingw.c. (event-loop.o, inflow.o, mingw-hdep.o, posix-hdep.o, ser-base.o) (ser-tcp.o, ser-unix.o): Update. (ser-mingw.o): New rule. * configure: Regenerated. * configure.ac: Add ser-mingw.o for mingw32. * ser-mingw.c: New file. * event-loop.c: Include "gdb_select.h". (gdb_select): Remove, moved to mingw-hdep.c and posix-hdep.c. * ser-base.c: Include "gdb_select.h". (ser_base_wait_for): Use gdb_select. * serial.c (serial_for_fd): New function. (serial_fdopen): Try "terminal" before "hardwire". Initialize the allocated struct serial. (serial_wait_handle): New function. * serial.h (serial_for_fd, serial_wait_handle): New prototypes. (struct serial_ops) [USE_WIN32API]: Add wait_handle. * gdb_select.h: New file. * ser-tcp.c: Include "ser-tcp.h". Remove unused "ser-unix.h" include. (net_close, net_read_prim, net_write_prim): Make global. (net_open): Likewise. Pass an exception set to select. Whitespace fix. Document why we can not use gdb_select. (_initialize_ser_tcp) [USE_WIN32API]: Do not register TCP support here. * ser-tcp.h: New file. * inflow.c (gdb_has_a_terminal): Don't initialize stdin_serial here. (handle_sigio): Use gdb_select. (initialize_stdin_serial): New function. * terminal.h (initialize_stdin_serial): New prototype. * top.c (gdb_init): Call initialize_stdin_serial. * mingw-hdep.c (gdb_select): New function, moved from gdb_select in event-loop.c. Add exception condition support. Use serial_for_fd and serial_wait_handle. Fix timeout handling. * posix-hdep.c: Include "gdb_select.h". (gdb_select): New function. * remote-st.c (connect_command): Use gdb_select. * ser-unix.c: Include "gdb_select.h". (hardwire_send_break, wait_for): Use gdb_select.
This commit is contained in:
21
gdb/inflow.c
21
gdb/inflow.c
@@ -1,6 +1,6 @@
|
||||
/* Low level interface to ptrace, for GDB when running under Unix.
|
||||
Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
|
||||
1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004
|
||||
1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GDB.
|
||||
@@ -32,9 +32,7 @@
|
||||
#include "gdb_string.h"
|
||||
#include <signal.h>
|
||||
#include <fcntl.h>
|
||||
#ifdef HAVE_SYS_SELECT_H
|
||||
#include <sys/select.h>
|
||||
#endif
|
||||
#include "gdb_select.h"
|
||||
|
||||
#include "inflow.h"
|
||||
|
||||
@@ -129,7 +127,6 @@ gdb_has_a_terminal (void)
|
||||
#endif
|
||||
|
||||
gdb_has_a_terminal_flag = no;
|
||||
stdin_serial = serial_fdopen (0);
|
||||
if (stdin_serial != NULL)
|
||||
{
|
||||
our_ttystate = serial_get_tty_state (stdin_serial);
|
||||
@@ -643,7 +640,7 @@ handle_sigio (int signo)
|
||||
|
||||
FD_ZERO (&readfds);
|
||||
FD_SET (target_activity_fd, &readfds);
|
||||
numfds = select (target_activity_fd + 1, &readfds, NULL, NULL, NULL);
|
||||
numfds = gdb_select (target_activity_fd + 1, &readfds, NULL, NULL, NULL);
|
||||
if (numfds >= 0 && FD_ISSET (target_activity_fd, &readfds))
|
||||
{
|
||||
#ifndef _WIN32
|
||||
@@ -730,6 +727,18 @@ gdb_setpgid (void)
|
||||
return retval;
|
||||
}
|
||||
|
||||
/* Get all the current tty settings (including whether we have a
|
||||
tty at all!). We can't do this in _initialize_inflow because
|
||||
serial_fdopen() won't work until the serial_ops_list is
|
||||
initialized, but we don't want to do it lazily either, so
|
||||
that we can guarantee stdin_serial is opened if there is
|
||||
a terminal. */
|
||||
void
|
||||
initialize_stdin_serial (void)
|
||||
{
|
||||
stdin_serial = serial_fdopen (0);
|
||||
}
|
||||
|
||||
void
|
||||
_initialize_inflow (void)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user