/* Generic serial interface routines
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+ 2002, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+ Free Software Foundation, Inc.
This file is part of GDB.
serial_for_fd (int fd)
{
struct serial *scb;
- struct serial_ops *ops;
for (scb = scb_base; scb; scb = scb->next)
if (scb->fd == fd)
in case we are getting ready to dump core or something. */
gdb_flush (serial_logfp);
}
+ if (serial_debug_p (scb))
+ {
+ int count;
+
+ for (count = 0; count < len; count++)
+ {
+ fprintf_unfiltered (gdb_stdlog, "[");
+ serial_logchar (gdb_stdlog, 'w', str[count] & 0xff, 0);
+ fprintf_unfiltered (gdb_stdlog, "]");
+ }
+ gdb_flush (gdb_stdlog);
+ }
return (scb->ops->write (scb, str, len));
}
serial_event_ftype *handler,
void *context)
{
- /* Only change mode if there is a need. */
- if ((scb->async_handler == NULL)
- != (handler == NULL))
- scb->ops->async (scb, handler != NULL);
+ int changed = ((scb->async_handler == NULL) != (handler == NULL));
+
scb->async_handler = handler;
scb->async_context = context;
+ /* Only change mode if there is a need. */
+ if (changed)
+ scb->ops->async (scb, handler != NULL);
}
int