diff options
author | Joel Sherrill <joel.sherrill@oarcorp.com> | 2014-04-18 10:52:21 -0500 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@oarcorp.com> | 2014-04-22 08:37:01 -0500 |
commit | a531683ae99448696a29127a056e126493fe1e37 (patch) | |
tree | 53a55c23a7212233a04bff8d9eba9079281dcd89 /c/src/lib/libbsp/sh/shsim/console | |
parent | bsps: Fix TLS support in linker command files (diff) | |
download | rtems-a531683ae99448696a29127a056e126493fe1e37.tar.bz2 |
shsim: Add printk() support and move all code to console subdirectory
Diffstat (limited to 'c/src/lib/libbsp/sh/shsim/console')
-rw-r--r-- | c/src/lib/libbsp/sh/shsim/console/console-debugio.c | 36 | ||||
-rw-r--r-- | c/src/lib/libbsp/sh/shsim/console/console-io.c | 72 | ||||
-rw-r--r-- | c/src/lib/libbsp/sh/shsim/console/console-support.S | 18 |
3 files changed, 126 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/sh/shsim/console/console-debugio.c b/c/src/lib/libbsp/sh/shsim/console/console-debugio.c new file mode 100644 index 0000000000..38b6c8f698 --- /dev/null +++ b/c/src/lib/libbsp/sh/shsim/console/console-debugio.c @@ -0,0 +1,36 @@ +/** + * @file + * @brief Stub printk() support + * + * This file contains a stub for the required printk() support. + * It is NOT functional!!! + */ + +/* + * COPYRIGHT (c) 1989-2014. + * On-Line Applications Research Corporation (OAR). + * + * 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. + */ + +/* + * To support printk + */ + +#include <rtems.h> +#include <rtems/bspIo.h> + +void console_outbyte_polled( + int port, + char ch +); + +void BSP_output_char_f(char c) +{ + console_outbyte_polled( 0, c ); +} + +BSP_output_char_function_type BSP_output_char = BSP_output_char_f; +BSP_polling_getchar_function_type BSP_poll_char = NULL; diff --git a/c/src/lib/libbsp/sh/shsim/console/console-io.c b/c/src/lib/libbsp/sh/shsim/console/console-io.c new file mode 100644 index 0000000000..b327192d5d --- /dev/null +++ b/c/src/lib/libbsp/sh/shsim/console/console-io.c @@ -0,0 +1,72 @@ +/* + * This file contains the hardware specific portions of the TTY driver + * for the simulators stdin/out. + * + * Logic based on newlib-1.8.2/newlib/libc/sys/sh/syscalls.c + * + * COPYRIGHT (c) 1989-2011. + * On-Line Applications Research Corporation (OAR). + * + * 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. + */ + +#include <bsp.h> +#include <rtems/libio.h> +#include <stdlib.h> +#include <assert.h> + +#include <bsp/syscall.h> + +int errno; + +extern int __trap34(int, int, void*, int ); + +/* + * console_initialize_hardware + * + * This routine initializes the console hardware. + * + */ + +void console_initialize_hardware(void) +{ + return; +} + +/* + * console_outbyte_polled + * + * This routine transmits a character using polling. + */ + +void console_outbyte_polled( + int port, + char ch +) +{ + __trap34 (SYS_write, 1, &ch, 1); + return; +} + +/* + * console_inbyte_nonblocking + * + * This routine polls for a character. + */ + +int console_inbyte_nonblocking( + int port +) +{ + unsigned char c; + + return __trap34 (SYS_read, 0, &c, 1); +} + +/* XXX wrong place for this */ +int _sys_exit (int n) +{ + return __trap34 (SYS_exit, n, 0, 0); +} diff --git a/c/src/lib/libbsp/sh/shsim/console/console-support.S b/c/src/lib/libbsp/sh/shsim/console/console-support.S new file mode 100644 index 0000000000..63f72f794b --- /dev/null +++ b/c/src/lib/libbsp/sh/shsim/console/console-support.S @@ -0,0 +1,18 @@ +/* + * newlib-1.8.2/newlib/libc/sys/sh/trap.S + */ + .text + .global ___trap34 +___trap34: + trapa #34 + tst r1,r1 ! r1 is errno + bt ret + mov.l perrno,r2 + mov.l r1,@r2 +ret: + rts + nop + + .align 2 +perrno: + .long _errno |