diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2001-01-29 15:33:34 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2001-01-29 15:33:34 +0000 |
commit | e0ddaa7ee3f9e7162de820aa4e6efc3976bd2db7 (patch) | |
tree | f57671b575c79921d348350f4796f76b29f1ce14 /c/src/lib/libbsp/sh/shsim/trap34 | |
parent | 2001-01-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de> (diff) | |
download | rtems-e0ddaa7ee3f9e7162de820aa4e6efc3976bd2db7.tar.bz2 |
2001-01-26 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* gdbsci/, scitab/, trap34/: Add directories.
Diffstat (limited to 'c/src/lib/libbsp/sh/shsim/trap34')
-rw-r--r-- | c/src/lib/libbsp/sh/shsim/trap34/.cvsignore | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/sh/shsim/trap34/Makefile.am | 38 | ||||
-rw-r--r-- | c/src/lib/libbsp/sh/shsim/trap34/console-io.c | 78 | ||||
-rw-r--r-- | c/src/lib/libbsp/sh/shsim/trap34/console-support.S | 21 |
4 files changed, 139 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/sh/shsim/trap34/.cvsignore b/c/src/lib/libbsp/sh/shsim/trap34/.cvsignore new file mode 100644 index 0000000000..282522db03 --- /dev/null +++ b/c/src/lib/libbsp/sh/shsim/trap34/.cvsignore @@ -0,0 +1,2 @@ +Makefile +Makefile.in diff --git a/c/src/lib/libbsp/sh/shsim/trap34/Makefile.am b/c/src/lib/libbsp/sh/shsim/trap34/Makefile.am new file mode 100644 index 0000000000..fc6f48e384 --- /dev/null +++ b/c/src/lib/libbsp/sh/shsim/trap34/Makefile.am @@ -0,0 +1,38 @@ +## +## $Id$ +## + +AUTOMAKE_OPTIONS = foreign 1.4 + +VPATH = @srcdir@:@srcdir@/../../../shared + +PGM = $(ARCH)/console.rel + +C_FILES = console-io.c +C_O_FILES = $(C_FILES:%.c=$(ARCH)/%.o) + +S_FILES = console-support.S +S_O_FILES = $(S_FILES:%.S=$(ARCH)/%.o) + +OBJS = $(C_O_FILES) $(S_O_FILES) + +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg +include $(top_srcdir)/../../../../../../automake/compile.am +include $(top_srcdir)/../../../../../../automake/lib.am + +# +# (OPTIONAL) Add local stuff here using += +# + +$(PGM): $(OBJS) + $(make-rel) + +# the .rel file built here will be put into libbsp.a by ../wrapup/Makefile + +all-local: $(ARCH) $(OBJS) $(PGM) + +.PRECIOUS: $(PGM) + +EXTRA_DIST = console.c + +include $(top_srcdir)/../../../../../../automake/local.am diff --git a/c/src/lib/libbsp/sh/shsim/trap34/console-io.c b/c/src/lib/libbsp/sh/shsim/trap34/console-io.c new file mode 100644 index 0000000000..ec3caafb00 --- /dev/null +++ b/c/src/lib/libbsp/sh/shsim/trap34/console-io.c @@ -0,0 +1,78 @@ +/* + * 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-2000. + * 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.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#include <bsp.h> +#include <rtems/libio.h> +#include <stdlib.h> +#include <assert.h> + + +#define SYS_exit 1 +#define SYS_read 3 +#define SYS_write 4 + +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 */ +_sys_exit (n) +{ + return __trap34 (SYS_exit, n, 0, 0); +} + diff --git a/c/src/lib/libbsp/sh/shsim/trap34/console-support.S b/c/src/lib/libbsp/sh/shsim/trap34/console-support.S new file mode 100644 index 0000000000..b4b9d9ae76 --- /dev/null +++ b/c/src/lib/libbsp/sh/shsim/trap34/console-support.S @@ -0,0 +1,21 @@ +/* + * newlib-1.8.2/newlib/libc/sys/sh/trap.S + * + * $Id$ + */ + .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 + |