summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/bfin
diff options
context:
space:
mode:
authorRalf Corsepius <ralf.corsepius@rtems.org>2009-12-11 04:15:58 +0000
committerRalf Corsepius <ralf.corsepius@rtems.org>2009-12-11 04:15:58 +0000
commita93d5c743fc3f3e869326bec9a9084a757a26819 (patch)
tree65d9b6848a7a816ab7e0f17658a873d3c7c4b333 /c/src/lib/libcpu/bfin
parent2009-12-11 Ralf Corsépius <ralf.corsepius@rtems.org> (diff)
downloadrtems-a93d5c743fc3f3e869326bec9a9084a757a26819.tar.bz2
2009-12-11 Ralf Corsépius <ralf.corsepius@rtems.org>
* serial/uart.c: Reflect changes to rtems_termios_callbacks->write.
Diffstat (limited to 'c/src/lib/libcpu/bfin')
-rw-r--r--c/src/lib/libcpu/bfin/ChangeLog5
-rw-r--r--c/src/lib/libcpu/bfin/serial/uart.c12
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) {