summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/m68k/mcf5206elite/console/console.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/m68k/mcf5206elite/console/console.c')
-rw-r--r--c/src/lib/libbsp/m68k/mcf5206elite/console/console.c343
1 files changed, 167 insertions, 176 deletions
diff --git a/c/src/lib/libbsp/m68k/mcf5206elite/console/console.c b/c/src/lib/libbsp/m68k/mcf5206elite/console/console.c
index c53b8cb3b1..40df1a5dfa 100644
--- a/c/src/lib/libbsp/m68k/mcf5206elite/console/console.c
+++ b/c/src/lib/libbsp/m68k/mcf5206elite/console/console.c
@@ -1,6 +1,8 @@
/*
* Console driver for Motorola MCF5206E UART modules
- *
+ */
+
+/*
* Copyright (C) 2000 OKTET Ltd., St.-Petersburg, Russia
* Author: Victor V. Vengerov <vvv@oktet.ru>
*
@@ -46,7 +48,7 @@ int console_mode = 2;
static int
console_poll_read(int minor)
{
- return mcfuart_poll_read(&uart[minor]);
+ return mcfuart_poll_read(&uart[minor]);
}
/* console_interrupt_write --
@@ -63,7 +65,7 @@ console_poll_read(int minor)
static ssize_t
console_interrupt_write(int minor, const char *buf, size_t len)
{
- return mcfuart_interrupt_write(&uart[minor], buf, len);
+ return mcfuart_interrupt_write(&uart[minor], buf, len);
}
/* console_poll_write --
@@ -80,7 +82,7 @@ console_interrupt_write(int minor, const char *buf, size_t len)
static ssize_t
console_poll_write(int minor, const char *buf, size_t len)
{
- return mcfuart_poll_write(&uart[minor], buf, len);
+ return mcfuart_poll_write(&uart[minor], buf, len);
}
/* console_set_attributes --
@@ -96,7 +98,7 @@ console_poll_write(int minor, const char *buf, size_t len)
static int
console_set_attributes(int minor, const struct termios *t)
{
- return mcfuart_set_attributes(&uart[minor], t);
+ return mcfuart_set_attributes(&uart[minor], t);
}
/* console_stop_remote_tx --
@@ -111,10 +113,10 @@ console_set_attributes(int minor, const struct termios *t)
static int
console_stop_remote_tx(int minor)
{
- if (minor < sizeof(uart)/sizeof(uart[0]))
- return mcfuart_stop_remote_tx(&uart[minor]);
- else
- return RTEMS_INVALID_NUMBER;
+ if (minor < sizeof(uart)/sizeof(uart[0]))
+ return mcfuart_stop_remote_tx(&uart[minor]);
+ else
+ return RTEMS_INVALID_NUMBER;
}
/* console_start_remote_tx --
@@ -127,10 +129,10 @@ console_stop_remote_tx(int minor)
static int
console_start_remote_tx(int minor)
{
- if (minor < sizeof(uart)/sizeof(uart[0]))
- return mcfuart_start_remote_tx(&uart[minor]);
- else
- return RTEMS_INVALID_NUMBER;
+ if (minor < sizeof(uart)/sizeof(uart[0]))
+ return mcfuart_start_remote_tx(&uart[minor]);
+ else
+ return RTEMS_INVALID_NUMBER;
}
/* console_first_open --
@@ -147,32 +149,31 @@ console_start_remote_tx(int minor)
static int
console_first_open(int major, int minor, void *arg)
{
- rtems_libio_open_close_args_t *args = arg;
- rtems_status_code sc;
- uint8_t intvec;
-
- switch (minor)
- {
- case 0: intvec = BSP_INTVEC_UART1; break;
- case 1: intvec = BSP_INTVEC_UART2; break;
- default:
- return RTEMS_INVALID_NUMBER;
- }
-
- if (console_mode != CONSOLE_MODE_INT)
- {
- intvec = 0;
- }
-
- sc = mcfuart_init(&uart[minor], /* uart */
- args->iop->data1, /* tty */
- intvec, /* interrupt vector number */
- minor+1);
-
- if (sc == RTEMS_SUCCESSFUL)
- sc = mcfuart_reset(&uart[minor]);
-
- return sc;
+ rtems_libio_open_close_args_t *args = arg;
+ rtems_status_code sc;
+ uint8_t intvec;
+
+ switch (minor) {
+ case 0: intvec = BSP_INTVEC_UART1; break;
+ case 1: intvec = BSP_INTVEC_UART2; break;
+ default:
+ return RTEMS_INVALID_NUMBER;
+ }
+
+ if (console_mode != CONSOLE_MODE_INT) {
+ intvec = 0;
+ }
+
+ sc = mcfuart_init(
+ &uart[minor], /* uart */
+ args->iop->data1, /* tty */
+ intvec, /* interrupt vector number */
+ minor+1);
+
+ if (sc == RTEMS_SUCCESSFUL)
+ sc = mcfuart_reset(&uart[minor]);
+
+ return sc;
}
/* console_last_close --
@@ -189,7 +190,7 @@ console_first_open(int major, int minor, void *arg)
static int
console_last_close(int major, int minor, void *arg)
{
- return mcfuart_disable(&uart[minor]);
+ return mcfuart_disable(&uart[minor]);
}
/* console_initialize --
@@ -204,51 +205,51 @@ console_last_close(int major, int minor, void *arg)
* RETURNS:
* RTEMS error code (RTEMS_SUCCESSFUL if device initialized successfuly)
*/
-rtems_device_driver
-console_initialize(rtems_device_major_number major,
- rtems_device_minor_number minor,
- void *arg)
+rtems_device_driver console_initialize(
+ rtems_device_major_number major,
+ rtems_device_minor_number minor,
+ void *arg)
{
- rtems_status_code status;
-
- /*
- * Set up TERMIOS
- */
- if (console_mode != CONSOLE_MODE_RAW)
- rtems_termios_initialize ();
-
- /*
- * Register the devices
- */
- status = rtems_io_register_name ("/dev/console", major, 0);
- if (status != RTEMS_SUCCESSFUL)
- rtems_fatal_error_occurred (status);
- status = rtems_io_register_name ("/dev/aux", major, 1);
- if (status != RTEMS_SUCCESSFUL)
- rtems_fatal_error_occurred (status);
-
- if (console_mode == CONSOLE_MODE_RAW)
- {
- rtems_status_code sc;
- sc = mcfuart_init(&uart[0], /* uart */
- NULL, /* tty */
- 0, /* interrupt vector number */
- 1); /* UART channel number */
-
- if (sc == RTEMS_SUCCESSFUL)
- sc = mcfuart_reset(&uart[0]);
-
- sc = mcfuart_init(&uart[1], /* uart */
- NULL, /* tty */
- 0, /* interrupt vector number */
- 2); /* UART channel number */
-
- if (sc == RTEMS_SUCCESSFUL)
- sc = mcfuart_reset(&uart[1]);
- return sc;
- }
+ rtems_status_code status;
+
+ /*
+ * Set up TERMIOS
+ */
+ if (console_mode != CONSOLE_MODE_RAW)
+ rtems_termios_initialize ();
+
+ /*
+ * Register the devices
+ */
+ status = rtems_io_register_name ("/dev/console", major, 0);
+ if (status != RTEMS_SUCCESSFUL)
+ rtems_fatal_error_occurred (status);
+
+ status = rtems_io_register_name ("/dev/aux", major, 1);
+ if (status != RTEMS_SUCCESSFUL)
+ rtems_fatal_error_occurred (status);
+
+ if (console_mode == CONSOLE_MODE_RAW) {
+ rtems_status_code sc;
+ sc = mcfuart_init(&uart[0], /* uart */
+ NULL, /* tty */
+ 0, /* interrupt vector number */
+ 1); /* UART channel number */
- return RTEMS_SUCCESSFUL;
+ if (sc == RTEMS_SUCCESSFUL)
+ sc = mcfuart_reset(&uart[0]);
+
+ sc = mcfuart_init(&uart[1], /* uart */
+ NULL, /* tty */
+ 0, /* interrupt vector number */
+ 2); /* UART channel number */
+
+ if (sc == RTEMS_SUCCESSFUL)
+ sc = mcfuart_reset(&uart[1]);
+ return sc;
+ }
+
+ return RTEMS_SUCCESSFUL;
}
/* console_open --
@@ -268,42 +269,41 @@ console_open(rtems_device_major_number major,
rtems_device_minor_number minor,
void *arg)
{
- static const rtems_termios_callbacks intr_callbacks = {
- console_first_open, /* firstOpen */
- console_last_close, /* lastClose */
- NULL, /* pollRead */
- console_interrupt_write, /* write */
- console_set_attributes, /* setAttributes */
- console_stop_remote_tx, /* stopRemoteTx */
- console_start_remote_tx, /* startRemoteTx */
- 1 /* outputUsesInterrupts */
- };
- static const rtems_termios_callbacks poll_callbacks = {
- console_first_open, /* firstOpen */
- console_last_close, /* lastClose */
- console_poll_read, /* pollRead */
- console_poll_write, /* write */
- console_set_attributes, /* setAttributes */
- console_stop_remote_tx, /* stopRemoteTx */
- console_start_remote_tx, /* startRemoteTx */
- 0 /* outputUsesInterrupts */
- };
-
- switch (console_mode)
- {
- case CONSOLE_MODE_RAW:
- return RTEMS_SUCCESSFUL;
-
- case CONSOLE_MODE_INT:
- return rtems_termios_open(major, minor, arg, &intr_callbacks);
-
- case CONSOLE_MODE_POLL:
- return rtems_termios_open(major, minor, arg, &poll_callbacks);
-
- default:
- rtems_fatal_error_occurred(0xC07A1310);
- }
- return RTEMS_INTERNAL_ERROR;
+ static const rtems_termios_callbacks intr_callbacks = {
+ console_first_open, /* firstOpen */
+ console_last_close, /* lastClose */
+ NULL, /* pollRead */
+ console_interrupt_write, /* write */
+ console_set_attributes, /* setAttributes */
+ console_stop_remote_tx, /* stopRemoteTx */
+ console_start_remote_tx, /* startRemoteTx */
+ 1 /* outputUsesInterrupts */
+ };
+ static const rtems_termios_callbacks poll_callbacks = {
+ console_first_open, /* firstOpen */
+ console_last_close, /* lastClose */
+ console_poll_read, /* pollRead */
+ console_poll_write, /* write */
+ console_set_attributes, /* setAttributes */
+ console_stop_remote_tx, /* stopRemoteTx */
+ console_start_remote_tx, /* startRemoteTx */
+ 0 /* outputUsesInterrupts */
+ };
+
+ switch (console_mode) {
+ case CONSOLE_MODE_RAW:
+ return RTEMS_SUCCESSFUL;
+
+ case CONSOLE_MODE_INT:
+ return rtems_termios_open(major, minor, arg, &intr_callbacks);
+
+ case CONSOLE_MODE_POLL:
+ return rtems_termios_open(major, minor, arg, &poll_callbacks);
+
+ default:
+ rtems_fatal_error_occurred(0xC07A1310);
+ }
+ return RTEMS_INTERNAL_ERROR;
}
/* console_close --
@@ -322,10 +322,10 @@ console_close(rtems_device_major_number major,
rtems_device_minor_number minor,
void *arg)
{
- if (console_mode != CONSOLE_MODE_RAW)
- return rtems_termios_close (arg);
- else
- return RTEMS_SUCCESSFUL;
+ if (console_mode != CONSOLE_MODE_RAW)
+ return rtems_termios_close (arg);
+ else
+ return RTEMS_SUCCESSFUL;
}
/* console_read --
@@ -344,32 +344,29 @@ console_read(rtems_device_major_number major,
rtems_device_minor_number minor,
void *arg)
{
- if (console_mode != CONSOLE_MODE_RAW)
- {
- return rtems_termios_read (arg);
- }
- else
- {
- rtems_libio_rw_args_t *argp = arg;
- char *buf = argp->buffer;
- int count = argp->count;
- int n = 0;
- int c;
- while (n < count)
- {
- do {
- c = mcfuart_poll_read(&uart[minor]);
- } while (c == -1);
- if (c == '\r')
- c = '\n';
- *(buf++) = c;
- n++;
- if (c == '\n')
- break;
- }
- argp->bytes_moved = n;
- return RTEMS_SUCCESSFUL;
+ if (console_mode != CONSOLE_MODE_RAW) {
+ return rtems_termios_read (arg);
+ } else {
+ rtems_libio_rw_args_t *argp = arg;
+ char *buf = argp->buffer;
+ int count = argp->count;
+ int n = 0;
+ int c;
+
+ while (n < count) {
+ do {
+ c = mcfuart_poll_read(&uart[minor]);
+ } while (c == -1);
+ if (c == '\r')
+ c = '\n';
+ *(buf++) = c;
+ n++;
+ if (c == '\n')
+ break;
}
+ argp->bytes_moved = n;
+ return RTEMS_SUCCESSFUL;
+ }
}
/* console_write --
@@ -389,27 +386,24 @@ console_write(rtems_device_major_number major,
void *arg
)
{
- if (console_mode != CONSOLE_MODE_RAW)
- {
- return rtems_termios_write (arg);
- }
- else
- {
- rtems_libio_rw_args_t *argp = arg;
- char cr = '\r';
- char *buf = argp->buffer;
- int count = argp->count;
- int i;
- for (i = 0; i < count; i++)
- {
- if (*buf == '\n')
- mcfuart_poll_write(&uart[minor], &cr, 1);
- mcfuart_poll_write(&uart[minor], buf, 1);
- buf++;
- }
- argp->bytes_moved = count;
- return RTEMS_SUCCESSFUL;
+ if (console_mode != CONSOLE_MODE_RAW) {
+ return rtems_termios_write (arg);
+ } else {
+ rtems_libio_rw_args_t *argp = arg;
+ char cr = '\r';
+ char *buf = argp->buffer;
+ int count = argp->count;
+ int i;
+
+ for (i = 0; i < count; i++) {
+ if (*buf == '\n')
+ mcfuart_poll_write(&uart[minor], &cr, 1);
+ mcfuart_poll_write(&uart[minor], buf, 1);
+ buf++;
}
+ argp->bytes_moved = count;
+ return RTEMS_SUCCESSFUL;
+ }
}
/* console_control --
@@ -428,12 +422,9 @@ console_control(rtems_device_major_number major,
rtems_device_minor_number minor,
void *arg)
{
- if (console_mode != CONSOLE_MODE_RAW)
- {
- return rtems_termios_ioctl (arg);
- }
- else
- {
- return RTEMS_SUCCESSFUL;
- }
+ if (console_mode != CONSOLE_MODE_RAW) {
+ return rtems_termios_ioctl (arg);
+ } else {
+ return RTEMS_SUCCESSFUL;
+ }
}