* ser-go32.c (dos_write) [UART_FIFO_WORKS]: Use outportsb only if
authorEli Zaretskii <eliz@gnu.org>
Sun, 4 Feb 2001 07:48:18 +0000 (07:48 +0000)
committerEli Zaretskii <eliz@gnu.org>
Sun, 4 Feb 2001 07:48:18 +0000 (07:48 +0000)
UART_FIFO_WORKS is defined.  Otherwise use outportb.
From Francisco Pastor <fpastor.etra-id@etra.es>

gdb/ChangeLog
gdb/ser-go32.c

index 7fdee03bf8863bb7a6273ac0715582c7be89069f..59e3f0ec56bc41fb35f9586ab8f73ce493a9e608 100644 (file)
@@ -1,5 +1,9 @@
 2001-02-04  Eli Zaretskii  <eliz@is.elta.co.il>
 
+       * ser-go32.c (dos_write) [UART_FIFO_WORKS]: Use outportsb only if
+       UART_FIFO_WORKS is defined.  Otherwise use outportb.
+       From Francisco Pastor <fpastor.etra-id@etra.es>
+
        * go32-nat.c (go32_xfer_memory): Make the argument list consistent
        with target.h's `to_xfer_memory' member.
 
index 8a19dd4e8803effc0c0aa8630b6097b5e39c3fd4..ec1c3e0952b824a680e98539a0f71c36e99313d0 100644 (file)
@@ -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 <fpastor.etra-id@etra.es> 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