From e7de167c8ca5b48887e761f1686d305ba7b2bd70 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 11 Aug 2000 19:55:36 +0000 Subject: 2000-08-11 Charles-Antoine Gauthier * console/console.c: Fix polled input. --- c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog | 4 ++++ c/src/lib/libbsp/powerpc/mbx8xx/console/console.c | 18 ++++++++---------- 2 files changed, 12 insertions(+), 10 deletions(-) (limited to 'c/src/lib/libbsp') diff --git a/c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog b/c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog index a8b09a6a6a..4157ef78f3 100644 --- a/c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog +++ b/c/src/lib/libbsp/powerpc/mbx8xx/ChangeLog @@ -1,3 +1,7 @@ +2000-08-11 Charles-Antoine Gauthier + + * console/console.c: Fix polled input. + 2000-08-10 Charles-Antoine Gauthier * README: Updated. diff --git a/c/src/lib/libbsp/powerpc/mbx8xx/console/console.c b/c/src/lib/libbsp/powerpc/mbx8xx/console/console.c index 5e581b94cd..3246bf5a8d 100644 --- a/c/src/lib/libbsp/powerpc/mbx8xx/console/console.c +++ b/c/src/lib/libbsp/powerpc/mbx8xx/console/console.c @@ -149,7 +149,6 @@ int _EPPCBug_pollRead( retval = -1; input_params.clun = 0; - input_params.dlun = 0; switch( minor ) { case SMC1_MINOR: @@ -549,7 +548,7 @@ rtems_device_driver console_read( { #if UARTS_USE_TERMIOS != 1 rtems_libio_rw_args_t *rw_args = arg; - int i; + int c; #endif if ( minor > NUM_PORTS-1 ) @@ -563,12 +562,11 @@ rtems_device_driver console_read( #if UARTS_IO_MODE != 1 /* Polled I/O without termios */ - for( i = 0; i < rw_args->count; i++ ) { - rw_args->buffer[i] = BSP_READ( minor ); - if( rw_args->buffer[i] == '\r' ) - rw_args->buffer[i] = '\n'; - } - rw_args->bytes_moved = i; + while( (c = BSP_READ( minor )) == -1 ); + rw_args->buffer[0] = (unsigned8)c; + if( rw_args->buffer[0] == '\r' ) + rw_args->buffer[0] = '\n'; + rw_args->bytes_moved = 1; return RTEMS_SUCCESSFUL; #else /* RTEMS interrupt-driven I/O without termios */ @@ -592,7 +590,7 @@ rtems_device_driver console_write( { #if UARTS_USE_TERMIOS != 1 rtems_libio_rw_args_t *rw_args = arg; - int i; + unsigned32 i; char cr = '\r'; #endif @@ -613,7 +611,7 @@ rtems_device_driver console_write( if( rw_args->buffer[i] == '\n' ) BSP_WRITE( minor, &cr, 1 ); } - rw_args->bytes_moved = rw_args->count; + rw_args->bytes_moved = i; return RTEMS_SUCCESSFUL; #else /* RTEMS interrupt-driven I/O without termios */ -- cgit v1.2.3