This cleans up outputUsesInterrupts usage with rtems_termios_device_mode enum values. The outputUsesInterrupts member was typed as an int, named as if it were a boolean value, and used as if it were a rtems_termios_device_mode enum. In this patch, values assigned to outputUsesInterrupts have been converted to the corresponding rtems_termios_device_mode enum value, conversions from deviceOutputUsesInterrupts have been made explicit, and uses of rtems_termios_device_mode enum values with deviceOutputUsesInterrupts have been converted to booleans. --- bsps/arm/csb336/console/uart.c | 4 ++-- bsps/i386/pc386/console/ps2_mouse.c | 2 +- bsps/m68k/gen68340/console/console.c | 4 ++-- bsps/m68k/gen68360/console/console.c | 4 ++-- bsps/m68k/mcf5206elite/console/console.c | 4 ++-- bsps/m68k/mrm332/console/sci.c | 4 ++-- bsps/m68k/mvme167/console/console.c | 4 ++-- bsps/powerpc/gen5200/console/console.c | 4 ++-- bsps/powerpc/mpc8260ads/console/console.c | 4 ++-- bsps/powerpc/virtex4/start/dummy_console.c | 2 +- bsps/powerpc/virtex5/start/dummy_console.c | 2 +- bsps/sh/gensh2/console/config.c | 4 ++-- bsps/sh/gensh2/console/sci.c | 2 +- bsps/sh/gensh4/console/console.c | 4 ++-- bsps/shared/dev/serial/console-polled.c | 2 +- bsps/shared/dev/serial/legacy-console.c | 6 +++++- bsps/sparc/erc32/console/erc32_console.c | 4 ++-- bsps/sparc/leon2/console/console.c | 4 ++-- cpukit/include/rtems/libio.h | 3 ++- testsuites/libtests/termios01/termios_testdriver.c | 2 +- testsuites/libtests/termios03/termios_testdriver_polled.c | 2 +- testsuites/libtests/termios04/termios_testdriver_impl.h | 2 +- 22 files changed, 39 insertions(+), 34 deletions(-)
diff --git a/bsps/arm/csb336/console/uart.c b/bsps/arm/csb336/console/uart.c index 8d8a0c1ed0..1acb1baa10 100644 --- a/bsps/arm/csb336/console/uart.c +++ b/bsps/arm/csb336/console/uart.c @@ -61,7 +61,7 @@ rtems_termios_callbacks imx_uart_cbacks = { .setAttributes = imx_uart_set_attrs, .stopRemoteTx = NULL, .startRemoteTx = NULL, - .outputUsesInterrupts = 1, + .outputUsesInterrupts = TERMIOS_IRQ_DRIVEN, }; #else rtems_termios_callbacks imx_uart_cbacks = { @@ -72,7 +72,7 @@ rtems_termios_callbacks imx_uart_cbacks = { .setAttributes = imx_uart_set_attrs, .stopRemoteTx = NULL, .startRemoteTx = NULL, - .outputUsesInterrupts = 0, + .outputUsesInterrupts = TERMIOS_POLLED, }; #endif diff --git a/bsps/i386/pc386/console/ps2_mouse.c b/bsps/i386/pc386/console/ps2_mouse.c index 6a3f8551b4..581598d605 100644 --- a/bsps/i386/pc386/console/ps2_mouse.c +++ b/bsps/i386/pc386/console/ps2_mouse.c @@ -481,7 +481,7 @@ rtems_device_driver paux_open( NULL, /* setAttributes */ NULL, /* stopRemoteTx */ NULL, /* startRemoteTx */ - 0 /* outputUsesInterrupts */ + TERMIOS_POLLED /* outputUsesInterrupts */ }; status = rtems_termios_open (major, minor, arg, &cb ); diff --git a/bsps/m68k/gen68340/console/console.c b/bsps/m68k/gen68340/console/console.c index 34c18bc129..0f5e26d9e8 100644 --- a/bsps/m68k/gen68340/console/console.c +++ b/bsps/m68k/gen68340/console/console.c @@ -600,7 +600,7 @@ rtems_device_driver console_open( SetAttributes, /* setAttributes */ NULL, /* stopRemoteTx */ NULL, /* startRemoteTx */ - 1 /* outputUsesInterrupts */ + TERMIOS_IRQ_DRIVEN /* outputUsesInterrupts */ }; static const rtems_termios_callbacks pollCallbacks = { @@ -611,7 +611,7 @@ rtems_device_driver console_open( SetAttributes, /* setAttributes */ NULL, /* stopRemoteTx */ NULL, /* startRemoteTx */ - 0 /* outputUsesInterrupts */ + TERMIOS_POLLED /* outputUsesInterrupts */ }; if (minor==UART_CHANNEL_A) { diff --git a/bsps/m68k/gen68360/console/console.c b/bsps/m68k/gen68360/console/console.c index 4d0f2bcb20..a2292dbab9 100644 --- a/bsps/m68k/gen68360/console/console.c +++ b/bsps/m68k/gen68360/console/console.c @@ -308,7 +308,7 @@ rtems_device_driver console_open( smc1SetAttributes, /* setAttributes */ NULL, /* stopRemoteTx */ NULL, /* startRemoteTx */ - 1 /* outputUsesInterrupts */ + TERMIOS_IRQ_DRIVEN /* outputUsesInterrupts */ }; static const rtems_termios_callbacks pollCallbacks = { smc1Initialize, /* firstOpen */ @@ -318,7 +318,7 @@ rtems_device_driver console_open( smc1SetAttributes, /* setAttributes */ NULL, /* stopRemoteTx */ NULL, /* startRemoteTx */ - 0 /* outputUsesInterrupts */ + TERMIOS_POLLED /* outputUsesInterrupts */ }; /* diff --git a/bsps/m68k/mcf5206elite/console/console.c b/bsps/m68k/mcf5206elite/console/console.c index bbf343d0f3..20272af780 100644 --- a/bsps/m68k/mcf5206elite/console/console.c +++ b/bsps/m68k/mcf5206elite/console/console.c @@ -278,7 +278,7 @@ console_open(rtems_device_major_number major, console_set_attributes, /* setAttributes */ console_stop_remote_tx, /* stopRemoteTx */ console_start_remote_tx, /* startRemoteTx */ - 1 /* outputUsesInterrupts */ + TERMIOS_IRQ_DRIVEN /* outputUsesInterrupts */ }; static const rtems_termios_callbacks poll_callbacks = { console_first_open, /* firstOpen */ @@ -288,7 +288,7 @@ console_open(rtems_device_major_number major, console_set_attributes, /* setAttributes */ console_stop_remote_tx, /* stopRemoteTx */ console_start_remote_tx, /* startRemoteTx */ - 0 /* outputUsesInterrupts */ + TERMIOS_POLLED /* outputUsesInterrupts */ }; switch (console_mode) { diff --git a/bsps/m68k/mrm332/console/sci.c b/bsps/m68k/mrm332/console/sci.c index c6b4933f13..cf9370b2eb 100644 --- a/bsps/m68k/mrm332/console/sci.c +++ b/bsps/m68k/mrm332/console/sci.c @@ -268,7 +268,7 @@ static const rtems_termios_callbacks SciInterruptCallbacks = SciSetAttributes, /* set attributes */ NULL, /* stop remote xmit */ NULL, /* start remote xmit */ - TRUE /* output uses interrupts */ + TERMIOS_IRQ_DRIVEN /* output uses interrupts */ }; /***************************************************************************** @@ -284,7 +284,7 @@ static const rtems_termios_callbacks SciPolledCallbacks = SciSetAttributes, /* set attributes */ NULL, /* stop remote xmit */ NULL, /* start remote xmit */ - FALSE /* output uses interrupts */ + TERMIOS_POLLED /* output uses interrupts */ }; diff --git a/bsps/m68k/mvme167/console/console.c b/bsps/m68k/mvme167/console/console.c index 0499ac46b3..e9084924fa 100644 --- a/bsps/m68k/mvme167/console/console.c +++ b/bsps/m68k/mvme167/console/console.c @@ -1515,7 +1515,7 @@ rtems_device_driver console_open( NULL, /* setAttributes */ NULL, /* stopRemoteTx */ NULL, /* startRemoteTx */ - 0 /* outputUsesInterrupts */ + TERMIOS_POLLED /* outputUsesInterrupts */ }; static const rtems_termios_callbacks intrCallbacks = { @@ -1526,7 +1526,7 @@ rtems_device_driver console_open( cd2401_setAttributes, /* setAttributes */ cd2401_stopRemoteTx, /* stopRemoteTx */ cd2401_startRemoteTx, /* startRemoteTx */ - 1 /* outputUsesInterrupts */ + TERMIOS_IRQ_DRIVEN /* outputUsesInterrupts */ }; if ( NVRAM_CONFIGURE ) diff --git a/bsps/powerpc/gen5200/console/console.c b/bsps/powerpc/gen5200/console/console.c index f225e98727..f92e88e403 100644 --- a/bsps/powerpc/gen5200/console/console.c +++ b/bsps/powerpc/gen5200/console/console.c @@ -681,7 +681,7 @@ rtems_device_driver console_open( mpc5200_uart_setAttributes, /* setAttributes */ NULL, NULL, - 1 /* outputUsesInterrupts */ + TERMIOS_IRQ_DRIVEN /* outputUsesInterrupts */ }; #else static const rtems_termios_callbacks pollCallbacks = { @@ -692,7 +692,7 @@ rtems_device_driver console_open( mpc5200_uart_setAttributes, /* setAttributes */ NULL, NULL, - 0 /* output don't use Interrupts */ + TERMIOS_POLLED /* output don't use Interrupts */ }; #endif diff --git a/bsps/powerpc/mpc8260ads/console/console.c b/bsps/powerpc/mpc8260ads/console/console.c index 873c38dc3e..ab3e455a12 100644 --- a/bsps/powerpc/mpc8260ads/console/console.c +++ b/bsps/powerpc/mpc8260ads/console/console.c @@ -322,7 +322,7 @@ rtems_device_driver console_open( m8xx_uart_setAttributes, /* setAttributes */ NULL, /* stopRemoteTx */ NULL, /* startRemoteTx */ - 1 /* outputUsesInterrupts */ + TERMIOS_IRQ_DRIVEN /* outputUsesInterrupts */ }; #else #if (UARTS_USE_TERMIOS == 1) && (UARTS_IO_MODE != 1) @@ -334,7 +334,7 @@ rtems_device_driver console_open( m8xx_uart_setAttributes, /* setAttributes */ NULL, /* stopRemoteTx */ NULL, /* startRemoteTx */ - 0 /* outputUsesInterrupts */ + TERMIOS_POLLED /* outputUsesInterrupts */ }; #endif diff --git a/bsps/powerpc/virtex4/start/dummy_console.c b/bsps/powerpc/virtex4/start/dummy_console.c index 642fe45618..ca8d2e7854 100644 --- a/bsps/powerpc/virtex4/start/dummy_console.c +++ b/bsps/powerpc/virtex4/start/dummy_console.c @@ -31,7 +31,7 @@ static rtems_termios_callbacks gMemCallbacks = { 0, /* SetAttr */ 0, /* stopRemoteTx */ 0, /* startRemoteTx */ - 0 /* outputUsesInterrupts */ + TERMIOS_POLLED /* outputUsesInterrupts */ }; rtems_device_driver console_initialize(rtems_device_major_number major, diff --git a/bsps/powerpc/virtex5/start/dummy_console.c b/bsps/powerpc/virtex5/start/dummy_console.c index 2cdab33c8c..7480402cde 100644 --- a/bsps/powerpc/virtex5/start/dummy_console.c +++ b/bsps/powerpc/virtex5/start/dummy_console.c @@ -28,7 +28,7 @@ static rtems_termios_callbacks gMemCallbacks = { 0, /* SetAttr */ 0, /* stopRemoteTx */ 0, /* startRemoteTx */ - 0 /* outputUsesInterrupts */ + TERMIOS_POLLED /* outputUsesInterrupts */ }; rtems_device_driver console_initialize(rtems_device_major_number major, diff --git a/bsps/sh/gensh2/console/config.c b/bsps/sh/gensh2/console/config.c index 7d8a983cd2..33ed1bd76e 100644 --- a/bsps/sh/gensh2/console/config.c +++ b/bsps/sh/gensh2/console/config.c @@ -54,7 +54,7 @@ const console_fns sh_sci_fns = sh_sci_initialize_interrupts, /* deviceInitialize */ sh_sci_write_polled, /* deviceWritePolled */ sh_sci_set_attributes, /* deviceSetAttributes */ - TERMIOS_IRQ_DRIVEN /* deviceOutputUsesInterrupts */ + true /* deviceOutputUsesInterrupts */ }; /* @@ -70,7 +70,7 @@ const console_fns sh_sci_fns_polled = sh_sci_init, /* deviceInitialize */ sh_sci_write_polled, /* deviceWritePolled */ sh_sci_set_attributes, /* deviceSetAttributes */ - TERMIOS_POLLED /* deviceOutputUsesInterrupts */ + false /* deviceOutputUsesInterrupts */ }; #if 1 /* (CONSOLE_USE_INTERRUPTS) */ diff --git a/bsps/sh/gensh2/console/sci.c b/bsps/sh/gensh2/console/sci.c index e02049cbf3..ba7f8bc832 100644 --- a/bsps/sh/gensh2/console/sci.c +++ b/bsps/sh/gensh2/console/sci.c @@ -539,7 +539,7 @@ const rtems_termios_callbacks sci_poll_callbacks = { _sh_sci_set_attributes, /* setAttributes */ NULL, /* stopRemoteTX */ NULL, /* StartRemoteTX */ - 0 /* outputUsesInterrupts */ + TERMIOS_POLLED /* outputUsesInterrupts */ }; /* FIXME: not yet supported */ diff --git a/bsps/sh/gensh4/console/console.c b/bsps/sh/gensh4/console/console.c index 917556df4e..02c43786d5 100644 --- a/bsps/sh/gensh4/console/console.c +++ b/bsps/sh/gensh4/console/console.c @@ -284,7 +284,7 @@ console_open(rtems_device_major_number major, console_set_attributes, /* setAttributes */ console_stop_remote_tx, /* stopRemoteTx */ console_start_remote_tx, /* startRemoteTx */ - 1 /* outputUsesInterrupts */ + TERMIOS_IRQ_DRIVEN /* outputUsesInterrupts */ }; static const rtems_termios_callbacks poll_callbacks = { console_first_open, /* firstOpen */ @@ -294,7 +294,7 @@ console_open(rtems_device_major_number major, console_set_attributes, /* setAttributes */ console_stop_remote_tx, /* stopRemoteTx */ console_start_remote_tx, /* startRemoteTx */ - 0 /* outputUsesInterrupts */ + TERMIOS_POLLED /* outputUsesInterrupts */ }; switch (console_mode) diff --git a/bsps/shared/dev/serial/console-polled.c b/bsps/shared/dev/serial/console-polled.c index 0fc765cb64..37ad5b8f18 100644 --- a/bsps/shared/dev/serial/console-polled.c +++ b/bsps/shared/dev/serial/console-polled.c @@ -113,7 +113,7 @@ rtems_device_driver console_open( NULL, /* setAttributes */ NULL, /* stopRemoteTx */ NULL, /* startRemoteTx */ - 0 /* outputUsesInterrupts */ + TERMIOS_POLLED /* outputUsesInterrupts */ }; assert( minor == 0 ); diff --git a/bsps/shared/dev/serial/legacy-console.c b/bsps/shared/dev/serial/legacy-console.c index 7da87276b0..698439b247 100644 --- a/bsps/shared/dev/serial/legacy-console.c +++ b/bsps/shared/dev/serial/legacy-console.c @@ -234,7 +234,11 @@ rtems_device_driver console_open( Callbacks.stopRemoteTx = NULL; Callbacks.startRemoteTx = NULL; } - Callbacks.outputUsesInterrupts = cptr->pDeviceFns->deviceOutputUsesInterrupts; + if (cptr->pDeviceFns->deviceOutputUsesInterrupts) { + Callbacks.outputUsesInterrupts = TERMIOS_IRQ_DRIVEN; + } else { + Callbacks.outputUsesInterrupts = TERMIOS_POLLED; + } /* XXX what about * Console_Port_Tbl[minor].ulMargin, diff --git a/bsps/sparc/erc32/console/erc32_console.c b/bsps/sparc/erc32/console/erc32_console.c index 81dfe026fb..f50b8b4073 100644 --- a/bsps/sparc/erc32/console/erc32_console.c +++ b/bsps/sparc/erc32/console/erc32_console.c @@ -66,7 +66,7 @@ static void erc32_console_initialize(int minor); erc32_console_initialize, /* deviceInitialize */ NULL, /* deviceWritePolled */ NULL, /* deviceSetAttributes */ - TERMIOS_IRQ_DRIVEN /* deviceOutputUsesInterrupts */ + true /* deviceOutputUsesInterrupts */ }; #else const console_fns erc32_fns = { @@ -78,7 +78,7 @@ static void erc32_console_initialize(int minor); erc32_console_initialize, /* deviceInitialize */ NULL, /* deviceWritePolled */ NULL, /* deviceSetAttributes */ - TERMIOS_POLLED /* deviceOutputUsesInterrupts */ + false /* deviceOutputUsesInterrupts */ }; #endif diff --git a/bsps/sparc/leon2/console/console.c b/bsps/sparc/leon2/console/console.c index 579792a06a..063afac178 100644 --- a/bsps/sparc/leon2/console/console.c +++ b/bsps/sparc/leon2/console/console.c @@ -327,7 +327,7 @@ rtems_device_driver console_open( NULL, /* setAttributes */ NULL, /* stopRemoteTx */ NULL, /* startRemoteTx */ - 0 /* outputUsesInterrupts */ + TERMIOS_POLLED /* outputUsesInterrupts */ }; #else static const rtems_termios_callbacks pollCallbacks = { @@ -338,7 +338,7 @@ rtems_device_driver console_open( NULL, /* setAttributes */ NULL, /* stopRemoteTx */ NULL, /* startRemoteTx */ - 0 /* outputUsesInterrupts */ + TERMIOS_POLLED /* outputUsesInterrupts */ }; #endif diff --git a/cpukit/include/rtems/libio.h b/cpukit/include/rtems/libio.h index 6898168aa6..5424a2a03c 100644 --- a/cpukit/include/rtems/libio.h +++ b/cpukit/include/rtems/libio.h @@ -56,6 +56,7 @@ #include <rtems/fs.h> #include <rtems/chain.h> #include <rtems/score/atomic.h> +#include <rtems/termiosdevice.h> #ifdef __cplusplus extern "C" { @@ -1902,7 +1903,7 @@ typedef struct rtems_termios_callbacks { int (*setAttributes)(int minor, const struct termios *t); int (*stopRemoteTx)(int minor); int (*startRemoteTx)(int minor); - int outputUsesInterrupts; + rtems_termios_device_mode outputUsesInterrupts; } rtems_termios_callbacks; static inline void rtems_termios_initialize( void ) diff --git a/testsuites/libtests/termios01/termios_testdriver.c b/testsuites/libtests/termios01/termios_testdriver.c index d0a9534b52..49810a37e0 100644 --- a/testsuites/libtests/termios01/termios_testdriver.c +++ b/testsuites/libtests/termios01/termios_testdriver.c @@ -192,7 +192,7 @@ rtems_device_driver termios_test_driver_open( termios_test_driver_set_attributes, /* setAttributes */ NULL, /* stopRemoteTx */ NULL, /* startRemoteTx */ - 0 /* outputUsesInterrupts */ + TERMIOS_POLLED /* outputUsesInterrupts */ }; if ( minor > 2 ) { diff --git a/testsuites/libtests/termios03/termios_testdriver_polled.c b/testsuites/libtests/termios03/termios_testdriver_polled.c index a852fe1f20..8daf8d6685 100644 --- a/testsuites/libtests/termios03/termios_testdriver_polled.c +++ b/testsuites/libtests/termios03/termios_testdriver_polled.c @@ -159,7 +159,7 @@ rtems_device_driver termios_test_driver_open( termios_test_driver_set_attributes, /* setAttributes */ NULL, /* stopRemoteTx */ NULL, /* startRemoteTx */ - 0 /* outputUsesInterrupts */ + TERMIOS_POLLED /* outputUsesInterrupts */ }; if ( minor > 2 ) { diff --git a/testsuites/libtests/termios04/termios_testdriver_impl.h b/testsuites/libtests/termios04/termios_testdriver_impl.h index cfe9ebedf4..740f9e0778 100644 --- a/testsuites/libtests/termios04/termios_testdriver_impl.h +++ b/testsuites/libtests/termios04/termios_testdriver_impl.h @@ -271,7 +271,7 @@ rtems_device_driver termios_test_driver_open( #if defined(TASK_DRIVEN) TERMIOS_TASK_DRIVEN /* outputUsesInterrupts */ #else - 0 /* outputUsesInterrupts */ + TERMIOS_POLLED /* outputUsesInterrupts */ #endif }; -- 2.39.2 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel