diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7fdee03bf88..59e3f0ec56b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,9 @@ 2001-02-04 Eli Zaretskii + * ser-go32.c (dos_write) [UART_FIFO_WORKS]: Use outportsb only if + UART_FIFO_WORKS is defined. Otherwise use outportb. + From Francisco Pastor + * go32-nat.c (go32_xfer_memory): Make the argument list consistent with target.h's `to_xfer_memory' member. diff --git a/gdb/ser-go32.c b/gdb/ser-go32.c index 8a19dd4e880..ec1c3e0952b 100644 --- a/gdb/ser-go32.c +++ b/gdb/ser-go32.c @@ -796,9 +796,16 @@ dos_write (serial_t scb, const char *str, int len) /* send the data, fifosize bytes at a time */ cnt = fifosize > len ? len : fifosize; port->txbusy = 1; + /* Francisco Pastor says OUTSB messes + up the communications with UARTs with FIFOs. */ +#ifdef UART_FIFO_WORKS outportsb (port->base + com_data, str, cnt); str += cnt; len -= cnt; +#else + for ( ; cnt > 0; cnt--, len--) + outportb (port->base + com_data, *str++); +#endif #ifdef DOS_STATS cnts[CNT_TX] += cnt; #endif