diff options
Diffstat (limited to 'c/src/lib/libcpu/bfin')
-rw-r--r-- | c/src/lib/libcpu/bfin/ChangeLog | 5 | ||||
-rw-r--r-- | c/src/lib/libcpu/bfin/serial/uart.c | 12 |
2 files changed, 12 insertions, 5 deletions
diff --git a/c/src/lib/libcpu/bfin/ChangeLog b/c/src/lib/libcpu/bfin/ChangeLog index 38302023f9..3a3d5f86c0 100644 --- a/c/src/lib/libcpu/bfin/ChangeLog +++ b/c/src/lib/libcpu/bfin/ChangeLog @@ -1,3 +1,8 @@ +2009-12-11 Ralf Corsépius <ralf.corsepius@rtems.org> + + * serial/uart.c: + Reflect changes to rtems_termios_callbacks->write. + 2009-10-20 Ralf Corsépius <ralf.corsepius@rtems.org> * clock/rtc.c: Add initializer (Silence warning). diff --git a/c/src/lib/libcpu/bfin/serial/uart.c b/c/src/lib/libcpu/bfin/serial/uart.c index cb2c229322..0f9ab0f673 100644 --- a/c/src/lib/libcpu/bfin/serial/uart.c +++ b/c/src/lib/libcpu/bfin/serial/uart.c @@ -148,12 +148,13 @@ void debug_write_word(int word) { * */ -static int pollWrite(int minor, const char *buf, int len) { +static ssize_t pollWrite(int minor, const char *buf, size_t len) { - while (len-- > 0) + size_t count; + for ( count = 0; count < len; count++ ) bfin_uart_poll_write(minor, *buf++); - return 0; + return count; } static void enableInterrupts(int minor) { @@ -175,7 +176,7 @@ static void disableAllInterrupts(void) { } } -static int interruptWrite(int minor, const char *buf, int len) { +static ssize_t interruptWrite(int minor, const char *buf, size_t len) { char *base; base = uartsConfig->channels[minor].base_address; @@ -183,7 +184,8 @@ static int interruptWrite(int minor, const char *buf, int len) { uartsConfig->channels[minor].flags |= BFIN_UART_XMIT_BUSY; *(uint16_t volatile *) (base + UART_THR_OFFSET) = *buf; - return 0; + /* one byte written */ + return 1; } static int setAttributes(int minor, const struct termios *termios) { |