From cd42d3a86d898097e3ac63983d47b3f6f8f471c8 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 4 Feb 2001 07:48:18 +0000 Subject: [PATCH] * ser-go32.c (dos_write) [UART_FIFO_WORKS]: Use outportsb only if UART_FIFO_WORKS is defined. Otherwise use outportb. From Francisco Pastor --- gdb/ChangeLog | 4 ++++ gdb/ser-go32.c | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 7fdee03bf8..59e3f0ec56 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 8a19dd4e88..ec1c3e0952 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