aboutsummaryrefslogtreecommitdiff
path: root/gdb/serial.h
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2006-02-10 22:01:43 +0000
committerDaniel Jacobowitz <drow@false.org>2006-02-10 22:01:43 +0000
commit0ea3f30e219bd42259f09f68bcd605bf4ed4a1ea (patch)
tree07c791175cea3abee634fa9ccec99e18031ed5cd /gdb/serial.h
parent121ce6e53dd5751c6938ab86cbec2742702d06eb (diff)
downloadgdb-0ea3f30e219bd42259f09f68bcd605bf4ed4a1ea.zip
gdb-0ea3f30e219bd42259f09f68bcd605bf4ed4a1ea.tar.gz
gdb-0ea3f30e219bd42259f09f68bcd605bf4ed4a1ea.tar.bz2
* 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.
Diffstat (limited to 'gdb/serial.h')
-rw-r--r--gdb/serial.h26
1 files changed, 25 insertions, 1 deletions
diff --git a/gdb/serial.h b/gdb/serial.h
index a948ae1..d9a395b 100644
--- a/gdb/serial.h
+++ b/gdb/serial.h
@@ -1,5 +1,6 @@
/* Remote serial support interface definitions for GDB, the GNU Debugger.
- Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000
+ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+ 2004, 2005, 2006
Free Software Foundation, Inc.
This file is part of GDB.
@@ -22,6 +23,10 @@
#ifndef SERIAL_H
#define SERIAL_H
+#ifdef USE_WIN32API
+#include <windows.h>
+#endif
+
struct ui_file;
/* For most routines, if a failure is indicated, then errno should be
@@ -41,6 +46,10 @@ struct serial;
extern struct serial *serial_open (const char *name);
+/* Find an already opened serial stream using a file handle. */
+
+extern struct serial *serial_for_fd (int fd);
+
/* Open a new serial stream using a file handle. */
extern struct serial *serial_fdopen (const int fd);
@@ -238,6 +247,13 @@ struct serial_ops
/* Perform a low-level write operation, writing (at most) COUNT
bytes from BUF. */
int (*write_prim)(struct serial *scb, const void *buf, size_t count);
+
+#ifdef USE_WIN32API
+ /* Return a handle to wait on, indicating available data from SCB
+ when signaled, in *READ. Return a handle indicating errors
+ in *EXCEPT. */
+ void (*wait_handle) (struct serial *scb, HANDLE *read, HANDLE *except);
+#endif /* USE_WIN32API */
};
/* Add a new serial interface to the interface list */
@@ -248,4 +264,12 @@ extern void serial_add_interface (struct serial_ops * optable);
extern void serial_log_command (const char *);
+#ifdef USE_WIN32API
+
+/* Windows-only: find or create handles that we can wait on for this
+ serial device. */
+extern void serial_wait_handle (struct serial *, HANDLE *, HANDLE *);
+
+#endif /* USE_WIN32API */
+
#endif /* SERIAL_H */