diff options
Diffstat (limited to 'c/src/lib/libcpu/m68k/mcf5206/console/mcfuart.c')
-rw-r--r-- | c/src/lib/libcpu/m68k/mcf5206/console/mcfuart.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/c/src/lib/libcpu/m68k/mcf5206/console/mcfuart.c b/c/src/lib/libcpu/m68k/mcf5206/console/mcfuart.c index d17e63423b..7ec30a5289 100644 --- a/c/src/lib/libcpu/m68k/mcf5206/console/mcfuart.c +++ b/c/src/lib/libcpu/m68k/mcf5206/console/mcfuart.c @@ -395,15 +395,17 @@ mcfuart_poll_read(mcfuart *uart) * RETURNS: * 0 */ -int -mcfuart_poll_write(mcfuart *uart, const char *buf, int len) +ssize_t +mcfuart_poll_write(mcfuart *uart, const char *buf, size_t len) { + size_t retval = len; + while (len--) { while ((*MCF5206E_USR(MBAR, uart->chn) & MCF5206E_USR_TXRDY) == 0); *MCF5206E_UTB(MBAR, uart->chn) = *buf++; } - return 0; + return retval; } /* mcfuart_interrupt_handler -- @@ -517,8 +519,8 @@ mcfuart_interrupt_handler(rtems_vector_number vec) * RETURNS: * 0 */ -int -mcfuart_interrupt_write(mcfuart *uart, const char *buf, int len) +ssize_t +mcfuart_interrupt_write(mcfuart *uart, const char *buf, size_t len) { int level; rtems_interrupt_disable(level); |