int serial_readchar (struct serial *scb, int timeout) { int ch; /* FIXME: cagney/1999-10-11: Don't enable this check until the ASYNC code is finished. */ if (0 && serial_is_async_p (scb) && timeout < 0) internal_error (__FILE__, __LINE__, _("serial_readchar: blocking read in async mode")); ch = scb->ops->readchar (scb, timeout); if (serial_logfp != NULL) { serial_logchar (serial_logfp, 'r', ch, timeout); /* Make sure that the log file is as up-to-date as possible, in case we are getting ready to dump core or something. */ gdb_flush (serial_logfp); } if (serial_debug_p (scb)) { fprintf_unfiltered (gdb_stdlog, "["); serial_logchar (gdb_stdlog, 'r', ch, timeout); fprintf_unfiltered (gdb_stdlog, "]"); gdb_flush (gdb_stdlog); } return (ch); }
int serial_write (struct serial *scb, const void *buf, size_t count) { if (serial_logfp != NULL) { const char *str = buf; size_t c; for (c = 0; c < count; c++) serial_logchar (serial_logfp, 'w', str[c] & 0xff, 0); /* Make sure that the log file is as up-to-date as possible, in case we are getting ready to dump core or something. */ gdb_flush (serial_logfp); } if (serial_debug_p (scb)) { const char *str = buf; size_t c; for (c = 0; c < count; c++) { fprintf_unfiltered (gdb_stdlog, "["); serial_logchar (gdb_stdlog, 'w', str[c] & 0xff, 0); fprintf_unfiltered (gdb_stdlog, "]"); } gdb_flush (gdb_stdlog); } return (scb->ops->write (scb, buf, count)); }
int serial_send_break (struct serial *scb) { if (serial_logfp != NULL) serial_logchar (serial_logfp, 'w', SERIAL_BREAK, 0); return (scb->ops->send_break (scb)); }
int serial_write (struct serial *scb, const char *str, int len) { if (serial_logfp != NULL) { int count; for (count = 0; count < len; count++) serial_logchar (serial_logfp, 'w', str[count] & 0xff, 0); /* Make sure that the log file is as up-to-date as possible, in case we are getting ready to dump core or something. */ gdb_flush (serial_logfp); } return (scb->ops->write (scb, str, len)); }