[PATCH] or1ksim: Console: implement uart_read_polled

Hesham Moustafa heshamelmatary at gmail.com
Mon Sep 29 05:57:10 UTC 2014


Hi,

This patch is needed for capture, pppd and any other tests that prompt
users to input data interactively.

Regards,
Hesham

On Fri, Sep 19, 2014 at 9:20 PM, Hesham ALMatary <heshamelmatary at gmail.com>
wrote:

> Implement uart_read_polled which is needed for any application that
> reads input from users. It works fine with pppd, capture, and all
> termios tests.
> ---
>  c/src/lib/libbsp/or1k/or1ksim/console/uart.c | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/c/src/lib/libbsp/or1k/or1ksim/console/uart.c
> b/c/src/lib/libbsp/or1k/or1ksim/console/uart.c
> index f1cfa09..c0ee618 100644
> --- a/c/src/lib/libbsp/or1k/or1ksim/console/uart.c
> +++ b/c/src/lib/libbsp/or1k/or1ksim/console/uart.c
> @@ -86,9 +86,18 @@ static int uart_last_close(int major, int minor, void
> *arg)
>    return 0;
>  }
>
> -static int uart_read_polled(int minor)
> +static char uart_read_polled(int minor)
>  {
> -   return -1;
> +  unsigned char lsr;
> +  char c;
> +
> + /* Get a character when avaiable */
> +  do {
> +       lsr = OR1KSIM_REG(OR1KSIM_BSP_UART_REG_LINE_STATUS);
> +  } while ((lsr & OR1KSIM_BSP_UART_REG_LINE_STATUS_DR)
> +           != OR1KSIM_BSP_UART_REG_LINE_STATUS_DR);
> +
> +  return OR1KSIM_REG(OR1KSIM_BSP_UART_REG_RX);
>  }
>
>  static void uart_write_polled(int minor, char c)
> --
> 1.9.3
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20140929/53cb5e92/attachment-0002.html>


More information about the devel mailing list