diff options
author | Thomas Fitzsimmons <fitzsim@redhat.com> | 2002-05-17 20:13:38 +0000 |
---|---|---|
committer | Thomas Fitzsimmons <fitzsim@redhat.com> | 2002-05-17 20:13:38 +0000 |
commit | 7fc85bd1b9502b5fe30102e85f4743dbf45b9f01 (patch) | |
tree | bdfe520d8183ba54c11e0fcbb846b453a36f0364 | |
parent | b05b7d84d6bd29dd07d0b493dad8d4d48493db3e (diff) | |
download | cygnal-7fc85bd1b9502b5fe30102e85f4743dbf45b9f01.tar.gz cygnal-7fc85bd1b9502b5fe30102e85f4743dbf45b9f01.tar.bz2 cygnal-7fc85bd1b9502b5fe30102e85f4743dbf45b9f01.zip |
* newlib/libc/sys/h8300hms/Makeile.am (lib_a_SOURCES): Add read.c.
* newlib/libc/sys/h8300hms/read.c: New file. Magic trap 0xC8 for sim.
* newlib/libc/sys/h8300hms/syscalls.c: Move _read() to read.c.
* newlib/libs/sys/h8300hms/sys/syscall.h: New file.
-rw-r--r-- | newlib/ChangeLog | 7 | ||||
-rw-r--r-- | newlib/libc/sys/h8300hms/Makefile.am | 2 | ||||
-rw-r--r-- | newlib/libc/sys/h8300hms/Makefile.in | 4 | ||||
-rw-r--r-- | newlib/libc/sys/h8300hms/read.c | 27 | ||||
-rw-r--r-- | newlib/libc/sys/h8300hms/sys/syscall.h | 1 | ||||
-rw-r--r-- | newlib/libc/sys/h8300hms/syscalls.c | 8 |
6 files changed, 38 insertions, 11 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 0bb6003b6..22f42853f 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,10 @@ +2002-05-14 Dhananjay Deshpande <dhananjayd@kpit.com> + + * newlib/libc/sys/h8300hms/Makeile.am (lib_a_SOURCES): Add read.c. + * newlib/libc/sys/h8300hms/read.c: New file. Magic trap 0xC8 for sim. + * newlib/libc/sys/h8300hms/syscalls.c: Move _read() to read.c. + * newlib/libs/sys/h8300hms/sys/syscall.h: New file. + Thu May 16 17:24:57 2002 J"orn Rennecke <joern.rennecke@superh.com> * libc/machine/sh/strcpy.S (strcpy): Replace LITTLE_ENDIAN with diff --git a/newlib/libc/sys/h8300hms/Makefile.am b/newlib/libc/sys/h8300hms/Makefile.am index 131adc047..a6d0815d9 100644 --- a/newlib/libc/sys/h8300hms/Makefile.am +++ b/newlib/libc/sys/h8300hms/Makefile.am @@ -6,7 +6,7 @@ INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) noinst_LIBRARIES = lib.a -lib_a_SOURCES = syscalls.c write.c _exit.c sbrk.c misc.c crt1.c +lib_a_SOURCES = syscalls.c write.c _exit.c read.c sbrk.c misc.c crt1.c all: crt0.o diff --git a/newlib/libc/sys/h8300hms/Makefile.in b/newlib/libc/sys/h8300hms/Makefile.in index 6539dcc85..dde61b4aa 100644 --- a/newlib/libc/sys/h8300hms/Makefile.in +++ b/newlib/libc/sys/h8300hms/Makefile.in @@ -88,7 +88,7 @@ INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) noinst_LIBRARIES = lib.a -lib_a_SOURCES = syscalls.c write.c _exit.c sbrk.c misc.c crt1.c +lib_a_SOURCES = syscalls.c write.c _exit.c read.c sbrk.c misc.c crt1.c ACLOCAL_AMFLAGS = -I ../../.. CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host @@ -102,7 +102,7 @@ DEFS = @DEFS@ -I. -I$(srcdir) CPPFLAGS = @CPPFLAGS@ LIBS = @LIBS@ lib_a_LIBADD = -lib_a_OBJECTS = syscalls.o write.o _exit.o sbrk.o misc.o crt1.o +lib_a_OBJECTS = syscalls.o write.o _exit.o read.o sbrk.o misc.o crt1.o CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) diff --git a/newlib/libc/sys/h8300hms/read.c b/newlib/libc/sys/h8300hms/read.c new file mode 100644 index 000000000..ba6b9e929 --- /dev/null +++ b/newlib/libc/sys/h8300hms/read.c @@ -0,0 +1,27 @@ +#include "sys/syscall.h" + +int _read(file, ptr, len) + int file; + char *ptr; + int len; +{ + register int ret asm("r0") ; + + /* Type cast int as short so that we can copy int values into 16 bit + registers in case of -mint32 switch is given. + This is not going to affect data as file= 0 for stdin and len=1024 */ + + asm("mov.b %0, r0l":: "i" (SYS_read)) ; /* Syscall Number */ + asm("mov.w %0, r1" :: "r"((short)file) :"r1", "r2", "r3") ; + asm("mov.w %0, r3" :: "r"((short)len) :"r1", "r2", "r3") ; +#ifdef __H8300__ + asm("mov.w %0, r2" :: "r"(ptr) :"r1", "r2", "r3") ; +#else + asm("mov.l %0, er2" :: "r"(ptr) :"r1", "er2", "r3") ; +#endif + // This is magic trap similar to _write for simulator + asm("jsr @@0xc8") ; + return ret; +} + + diff --git a/newlib/libc/sys/h8300hms/sys/syscall.h b/newlib/libc/sys/h8300hms/sys/syscall.h new file mode 100644 index 000000000..fba03549c --- /dev/null +++ b/newlib/libc/sys/h8300hms/sys/syscall.h @@ -0,0 +1 @@ +#define SYS_read 4 diff --git a/newlib/libc/sys/h8300hms/syscalls.c b/newlib/libc/sys/h8300hms/syscalls.c index 9f89c55d5..3ebac8843 100644 --- a/newlib/libc/sys/h8300hms/syscalls.c +++ b/newlib/libc/sys/h8300hms/syscalls.c @@ -5,14 +5,6 @@ #include <sys/stat.h> #include <errno.h> -int _DEFUN(_read,(file, ptr, len), - int file _AND - char *ptr _AND - int len) -{ - return 0; -} - int _DEFUN(_lseek,(file, ptr, dir), int file _AND |