summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1998-05-04 12:40:21 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1998-05-04 12:40:21 +0000
commit55951bc1e68124be71ed59eb81f786ead09ff70b (patch)
tree5cd891980f6228945c72ba3c95c624323ff5b2b3 /c/src/lib/libbsp
parentCorrected and added sections to link cleanly under powerpc-rtems (ELF). (diff)
downloadrtems-55951bc1e68124be71ed59eb81f786ead09ff70b.tar.bz2
Switched to termios callback structure.
Diffstat (limited to 'c/src/lib/libbsp')
-rw-r--r--c/src/lib/libbsp/m68k/dmv152/console/console.c29
-rw-r--r--c/src/lib/libbsp/powerpc/psim/console/console.c35
-rw-r--r--c/src/lib/libbsp/sparc/erc32/console/console.c49
3 files changed, 70 insertions, 43 deletions
diff --git a/c/src/lib/libbsp/m68k/dmv152/console/console.c b/c/src/lib/libbsp/m68k/dmv152/console/console.c
index 5ceb8eadd2..8d9105270d 100644
--- a/c/src/lib/libbsp/m68k/dmv152/console/console.c
+++ b/c/src/lib/libbsp/m68k/dmv152/console/console.c
@@ -189,18 +189,23 @@ rtems_device_driver console_open(
void * arg
)
{
- rtems_status_code sc;
-
- assert( minor <= 1 );
- if ( minor > 2 )
- return RTEMS_INVALID_NUMBER;
-
- sc = rtems_termios_open (major, minor, arg,
- NULL,
- NULL,
- console_inbyte_nonblocking,
- console_write_support,
- 0);
+ rtems_status_code sc;
+ static const rtems_termios_callbacks pollCallbacks = {
+ NULL, /* firstOpen */
+ NULL, /* lastClose */
+ console_inbyte_nonblocking, /* pollRead */
+ console_write_support, /* write */
+ NULL, /* setAttributes */
+ NULL, /* stopRemoteTx */
+ NULL, /* startRemoteTx */
+ 0 /* outputUsesInterrupts */
+ };
+
+ assert( minor <= 1 );
+ if ( minor > 2 )
+ return RTEMS_INVALID_NUMBER;
+
+ sc = rtems_termios_open (major, minor, arg, &pollCallbacks );
return RTEMS_SUCCESSFUL;
}
diff --git a/c/src/lib/libbsp/powerpc/psim/console/console.c b/c/src/lib/libbsp/powerpc/psim/console/console.c
index 19b695f65c..6024fc6479 100644
--- a/c/src/lib/libbsp/powerpc/psim/console/console.c
+++ b/c/src/lib/libbsp/powerpc/psim/console/console.c
@@ -18,6 +18,10 @@
#include <stdlib.h>
#include <assert.h>
+/* external prototypes for monitor interface routines */
+
+void outbyte( char );
+char inbyte( void );
/*
* console_outbyte_polled
@@ -87,9 +91,10 @@ void DEBUG_puts(
*
*/
-int console_write_support (int minor, char *buf, int len)
+int console_write_support (int minor, const void *bufarg, int len)
{
int nwrite = 0;
+ const char *buf = bufarg;
while (nwrite < len) {
console_outbyte_polled( minor, *buf++ );
@@ -130,18 +135,24 @@ rtems_device_driver console_open(
void * arg
)
{
- rtems_status_code sc;
-
- assert( minor <= 1 );
- if ( minor > 2 )
- return RTEMS_INVALID_NUMBER;
+ rtems_status_code sc;
+ static const rtems_termios_callbacks pollCallbacks = {
+ NULL, /* firstOpen */
+ NULL, /* lastClose */
+ console_inbyte_nonblocking, /* pollRead */
+ console_write_support, /* write */
+ NULL, /* setAttributes */
+ NULL, /* stopRemoteTx */
+ NULL, /* startRemoteTx */
+ 0 /* outputUsesInterrupts */
+ };
+
+
+ assert( minor <= 1 );
+ if ( minor > 2 )
+ return RTEMS_INVALID_NUMBER;
- sc = rtems_termios_open (major, minor, arg,
- NULL,
- NULL,
- console_inbyte_nonblocking,
- console_write_support,
- 0);
+ sc = rtems_termios_open (major, minor, arg, &pollCallbacks );
return RTEMS_SUCCESSFUL;
}
diff --git a/c/src/lib/libbsp/sparc/erc32/console/console.c b/c/src/lib/libbsp/sparc/erc32/console/console.c
index 29fdc2770e..024ed404de 100644
--- a/c/src/lib/libbsp/sparc/erc32/console/console.c
+++ b/c/src/lib/libbsp/sparc/erc32/console/console.c
@@ -420,31 +420,42 @@ rtems_device_driver console_open(
void * arg
)
{
- rtems_status_code sc;
+ rtems_status_code sc;
#if defined(CONSOLE_USE_INTERRUPTS)
- rtems_libio_open_close_args_t *args = arg;
+ rtems_libio_open_close_args_t *args = arg;
+ static const rtems_termios_callbacks intrCallbacks = {
+ NULL, /* firstOpen */
+ NULL, /* lastClose */
+ NULL, /* pollRead */
+ console_write_support, /* write */
+ NULL, /* setAttributes */
+ NULL, /* stopRemoteTx */
+ NULL, /* startRemoteTx */
+ 0 /* outputUsesInterrupts */
+ };
+#else
+ static const rtems_termios_callbacks pollCallbacks = {
+ NULL, /* firstOpen */
+ NULL, /* lastClose */
+ console_inbyte_nonblocking, /* pollRead */
+ console_write_support, /* write */
+ NULL, /* setAttributes */
+ NULL, /* stopRemoteTx */
+ NULL, /* startRemoteTx */
+ 0 /* outputUsesInterrupts */
+ };
#endif
- assert( minor <= 1 );
- if ( minor > 2 )
- return RTEMS_INVALID_NUMBER;
+ assert( minor <= 1 );
+ if ( minor > 2 )
+ return RTEMS_INVALID_NUMBER;
#if defined(CONSOLE_USE_INTERRUPTS)
- sc = rtems_termios_open (major, minor, arg,
- NULL,
- NULL,
- NULL,
- console_write_support,
- 0);
-
- console_termios_data[ minor ] = args->iop->data1;
+ sc = rtems_termios_open (major, minor, arg, &intrCallbacks);
+
+ console_termios_data[ minor ] = args->iop->data1;
#else
- sc = rtems_termios_open (major, minor, arg,
- NULL,
- NULL,
- console_inbyte_nonblocking,
- console_write_support,
- 0);
+ sc = rtems_termios_open (major, minor, arg, &pollCallbacks);
#endif
return RTEMS_SUCCESSFUL;