diff options
author | Keith Seitz <keiths@cygnus> | 1998-09-25 19:04:46 +0000 |
---|---|---|
committer | Keith Seitz <keiths@cygnus> | 1998-09-25 19:04:46 +0000 |
commit | 69da960729726894f3323027b23de8901f09e856 (patch) | |
tree | 647741a49ecff15ea195d9f316102b6618083b36 /gdb/remote-rdi.c | |
parent | 1af37f6bde766785b703ebd52378f3109fd85483 (diff) | |
download | gdb-69da960729726894f3323027b23de8901f09e856.zip gdb-69da960729726894f3323027b23de8901f09e856.tar.gz gdb-69da960729726894f3323027b23de8901f09e856.tar.bz2 |
Merge with armelf980813:
* rdi-share/unixcomm.c: If using cygwin32, also use the SERPORT and
PARPORT defines for win32.
(Unix_MatchValidSerialDevice): For cygwin32, valid serial port names
start with "com", not "/dev/tty".
(Unix_OpenSerial): Do not use O_NONBLOCK on cygwin32.
* rdi-share/devsw.c (DevSW_Close): Free the device's state (SwitcherState)
so that the device may be reopened.
* remote-rdi.c (mywritec): Send all output through gdb's *_unfiltered
functions, ignoring non-ASCII chars, so that non-tty UI's can snarf
the output from fputs_hook.
(mywrite): Ditto.
(arm_rdi_open): Set inferior_pid.
(arm_rdi_detach): Pop the target off the target stack so that
users can attach and detach multiple times.
(arm_rdi_close): Close the opened device and reset inferior_pid, too.
Diffstat (limited to 'gdb/remote-rdi.c')
-rw-r--r-- | gdb/remote-rdi.c | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/gdb/remote-rdi.c b/gdb/remote-rdi.c index ee02585..137bc59 100644 --- a/gdb/remote-rdi.c +++ b/gdb/remote-rdi.c @@ -42,6 +42,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "rdi-share/adp.h" #include "rdi-share/hsys.h" +extern int isascii PARAMS ((int)); + /* Prototypes for local functions */ static void arm_rdi_files_info PARAMS ((struct target_ops *ignore)); @@ -145,7 +147,8 @@ mywritec (arg, c) PTR arg; int c; { - fputc (c, (FILE *) arg); + if (isascii (c)) + fputc_unfiltered (c, (FILE *) arg); } static int @@ -154,7 +157,20 @@ mywrite (arg, buffer, len) char const *buffer; int len; { - return fwrite (buffer, 1, len, stdout); + int i; + char *e; + + e = (char *) buffer; + for (i = 0; i < len; i++) +{ + if (isascii ((int) *e)) + { + fputc_unfiltered ((int) *e, gdb_stdout); + e++; + } +} + + return len; } static void @@ -300,8 +316,8 @@ device is attached to the remote system (e.g. /dev/ttya)."); } printf_filtered ("Connected to ARM RDI target.\n"); - closed_already = 0; + inferior_pid = 42; } /* Start an inferior process and set inferior_pid to its pid. @@ -387,7 +403,7 @@ arm_rdi_detach (args, from_tty) char *args; int from_tty; { - /* (anything to do?) */ + pop_target (); } /* Clean up connection to a remote debugger. */ @@ -406,6 +422,7 @@ arm_rdi_close (quitting) printf_filtered ("RDI_close: %s\n", rdi_error_message (rslt)); } closed_already = 1; + inferior_pid = 0; } } |