From 69da960729726894f3323027b23de8901f09e856 Mon Sep 17 00:00:00 2001 From: Keith Seitz Date: Fri, 25 Sep 1998 19:04:46 +0000 Subject: 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. --- gdb/remote-rdi.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'gdb/remote-rdi.c') 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; } } -- cgit v1.1