diff options
Diffstat (limited to 'c/src/lib/libbsp/powerpc/t32mppc/console/console.c')
-rw-r--r-- | c/src/lib/libbsp/powerpc/t32mppc/console/console.c | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/c/src/lib/libbsp/powerpc/t32mppc/console/console.c b/c/src/lib/libbsp/powerpc/t32mppc/console/console.c deleted file mode 100644 index 5fbd648765..0000000000 --- a/c/src/lib/libbsp/powerpc/t32mppc/console/console.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright (c) 2012, 2015 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Dornierstr. 4 - * 82178 Puchheim - * Germany - * <rtems@embedded-brains.de> - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - */ - -/* - * Console driver for Lauterbach Trace32 Simulator. The implementation is - * based on the example in "demo/powerpc/etc/terminal/terminal_mpc85xx.cmm" in - * the Trace32 system directory. - */ - -#include <rtems/bspIo.h> -#include <rtems/console.h> -#include <rtems/termiostypes.h> - -volatile unsigned char messagebufferin[256]; - -volatile unsigned char messagebufferout[256]; - -typedef struct { - rtems_termios_device_context base; - int input_size; - int input_index; -} t32_console_context; - -static t32_console_context t32_console_instance; - -static bool t32_console_first_open( - rtems_termios_tty *tty, - rtems_termios_device_context *base, - struct termios *term, - rtems_libio_open_close_args_t *args -) -{ - rtems_termios_set_initial_baud(tty, 115200); - - return true; -} - -static int t32_console_read_polled(rtems_termios_device_context *base) -{ - t32_console_context *ctx = (t32_console_context *) base; - int c; - - if (ctx->input_size == 0) { - int new_bufsize = messagebufferin[0]; - - if (new_bufsize != 0) { - ctx->input_size = new_bufsize; - ctx->input_index = 0; - } else { - return -1; - } - } - - c = messagebufferin[4 + ctx->input_index]; - - ++ctx->input_index; - if (ctx->input_index >= ctx->input_size) { - messagebufferin[0] = 0; - ctx->input_size = 0; - } - - return c; -} - -static void t32_console_write_char_polled(char c) -{ - while (messagebufferout[0] != 0) { - /* Wait for ready */ - } - - messagebufferout[4] = (unsigned char) c; - messagebufferout[0] = 1; -} - -static void t32_console_write_polled( - rtems_termios_device_context *base, - const char *s, - size_t n -) -{ - size_t i; - - for (i = 0; i < n; ++i) { - t32_console_write_char_polled(s[i]); - } -} - -const rtems_termios_device_handler t32_console_handler = { - .first_open = t32_console_first_open, - .poll_read = t32_console_read_polled, - .write = t32_console_write_polled, - .mode = TERMIOS_POLLED -}; - -rtems_device_driver console_initialize( - rtems_device_major_number major, - rtems_device_minor_number minor, - void *arg -) -{ - t32_console_context *ctx = &t32_console_instance; - - rtems_termios_initialize(); - rtems_termios_device_context_initialize(&ctx->base, "T32 Console"); - rtems_termios_device_install( - CONSOLE_DEVICE_NAME, - &t32_console_handler, - NULL, - &ctx->base - ); - - return RTEMS_SUCCESSFUL; -} - -BSP_output_char_function_type BSP_output_char = t32_console_write_char_polled; - -BSP_polling_getchar_function_type BSP_poll_char = NULL; |