diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-07-21 15:28:32 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2011-07-21 15:28:32 +0000 |
commit | d7e676fd4c5afc3b4ea12a5d8c72d083fb80d134 (patch) | |
tree | d1ce45bda0e80799d3eccc490acb974a4666ba7d /c/src/lib/libbsp/shared/src/uart-output-char.c | |
parent | 2011-07-21 Sebastian Huber <sebastian.huber@embedded-brains.de> (diff) | |
download | rtems-d7e676fd4c5afc3b4ea12a5d8c72d083fb80d134.tar.bz2 |
2011-07-21 Sebastian Huber <sebastian.huber@embedded-brains.de>
* include/uart-output-char.h, src/uart-output-char.c: Support for
getchark().
Diffstat (limited to 'c/src/lib/libbsp/shared/src/uart-output-char.c')
-rw-r--r-- | c/src/lib/libbsp/shared/src/uart-output-char.c | 35 |
1 files changed, 23 insertions, 12 deletions
diff --git a/c/src/lib/libbsp/shared/src/uart-output-char.c b/c/src/lib/libbsp/shared/src/uart-output-char.c index c39def09f1..b6d07453be 100644 --- a/c/src/lib/libbsp/shared/src/uart-output-char.c +++ b/c/src/lib/libbsp/shared/src/uart-output-char.c @@ -7,12 +7,13 @@ */ /* - * Copyright (c) 2010 - * embedded brains GmbH - * Obere Lagerstr. 30 - * D-82178 Puchheim - * Germany - * <rtems@embedded-brains.de> + * Copyright (c) 2010-2011 embedded brains GmbH. All rights reserved. + * + * embedded brains GmbH + * Obere Lagerstr. 30 + * 82178 Puchheim + * Germany + * <rtems@embedded-brains.de> * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at @@ -23,7 +24,7 @@ #include <bsp/uart-output-char.h> -static void uart_output(char c) +static void uart_output_raw(char c) { while ((CONSOLE_LSR & CONSOLE_LSR_THRE) == 0) { /* Wait */ @@ -32,14 +33,24 @@ static void uart_output(char c) CONSOLE_THR = c; } -static void output(char c) +static void uart_output(char c) { if (c == '\n') { - uart_output('\r'); + uart_output_raw('\r'); } - uart_output(c); + uart_output_raw(c); +} + +static int uart_input(void) +{ + if ((CONSOLE_LSR & CONSOLE_LSR_RDR) != 0) { + return CONSOLE_RBR; + } else { + return -1; + } } -BSP_output_char_function_type BSP_output_char = output; -BSP_polling_getchar_function_type BSP_poll_char = NULL; +BSP_output_char_function_type BSP_output_char = uart_output; + +BSP_polling_getchar_function_type BSP_poll_char = uart_input; |