Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2003-02-25 23:36:29 +0300
committerJeff Johnston <jjohnstn@redhat.com>2003-02-25 23:36:29 +0300
commit41a639dea811272c66ed71eb9ca6c233050f57b3 (patch)
treeeadb76e7fe1e3fe6baed9ff78d86ee83eae163f2
parent5ffa5aaa5c9f7151ffd0fc4d6eae6f48cab29427 (diff)
2002-02-25 D.Venkatasubramanian <dvenkat@noida.hcltech.com>
* libc/sys/h8300hms/Makefile.am: Add support for new files. * libc/sys/h8300hms/Makefile.in: Regenerated. * libc/sys/h8300hms/close.S: New file. * libc/sys/h8300hms/fstat.S: Ditto. * libc/sys/h8300hms/lseek.S: Ditto. * libc/sys/h8300hms/open.S: Ditto. * libc/sys/h8300hms/stat.S: Ditto. * libc/sys/h8300hms/read.S: New file to replace read.c. * libc/sys/h8300hms/read.c: Removed. * libc/sys/h8300hms/syscalls.c: Removed functions _open, _lseek, _close, _stat, _fstat. * libc/sys/h8300hms/write.S: New file to replace write.c. * libc/sys/h8300hms/write.c: Removed.
-rw-r--r--newlib/ChangeLog16
-rw-r--r--newlib/libc/sys/h8300hms/Makefile.am3
-rw-r--r--newlib/libc/sys/h8300hms/Makefile.in11
-rw-r--r--newlib/libc/sys/h8300hms/close.S22
-rw-r--r--newlib/libc/sys/h8300hms/fstat.S23
-rw-r--r--newlib/libc/sys/h8300hms/lseek.S23
-rw-r--r--newlib/libc/sys/h8300hms/open.S19
-rw-r--r--newlib/libc/sys/h8300hms/read.S23
-rw-r--r--newlib/libc/sys/h8300hms/read.c27
-rw-r--r--newlib/libc/sys/h8300hms/stat.S17
-rw-r--r--newlib/libc/sys/h8300hms/syscalls.c33
-rw-r--r--newlib/libc/sys/h8300hms/write.S23
-rw-r--r--newlib/libc/sys/h8300hms/write.c16
13 files changed, 175 insertions, 81 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 7781da129..c09409ff4 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,19 @@
+2002-02-25 D.Venkatasubramanian <dvenkat@noida.hcltech.com>
+
+ * libc/sys/h8300hms/Makefile.am: Add support for new files.
+ * libc/sys/h8300hms/Makefile.in: Regenerated.
+ * libc/sys/h8300hms/close.S: New file.
+ * libc/sys/h8300hms/fstat.S: Ditto.
+ * libc/sys/h8300hms/lseek.S: Ditto.
+ * libc/sys/h8300hms/open.S: Ditto.
+ * libc/sys/h8300hms/stat.S: Ditto.
+ * libc/sys/h8300hms/read.S: New file to replace read.c.
+ * libc/sys/h8300hms/read.c: Removed.
+ * libc/sys/h8300hms/syscalls.c: Removed functions _open,
+ _lseek, _close, _stat, _fstat.
+ * libc/sys/h8300hms/write.S: New file to replace write.c.
+ * libc/sys/h8300hms/write.c: Removed.
+
2003-02-20 Nick Clifton <nickc@redhat.com>
* Add support for Cirrus Maverick ARM co-processor:
diff --git a/newlib/libc/sys/h8300hms/Makefile.am b/newlib/libc/sys/h8300hms/Makefile.am
index a6d0815d9..b4b8823b7 100644
--- a/newlib/libc/sys/h8300hms/Makefile.am
+++ b/newlib/libc/sys/h8300hms/Makefile.am
@@ -6,7 +6,8 @@ INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
noinst_LIBRARIES = lib.a
-lib_a_SOURCES = syscalls.c write.c _exit.c read.c sbrk.c misc.c crt1.c
+lib_a_SOURCES = syscalls.c _exit.c sbrk.c misc.c crt1.c \
+ close.S fstat.S lseek.S open.S read.S stat.S write.S
all: crt0.o
diff --git a/newlib/libc/sys/h8300hms/Makefile.in b/newlib/libc/sys/h8300hms/Makefile.in
index 865da548e..971ada259 100644
--- a/newlib/libc/sys/h8300hms/Makefile.in
+++ b/newlib/libc/sys/h8300hms/Makefile.in
@@ -1,6 +1,6 @@
-# Makefile.in generated automatically by automake 1.4 from Makefile.am
+# Makefile.in generated automatically by automake 1.4-p5 from Makefile.am
-# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -89,7 +89,9 @@ INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
noinst_LIBRARIES = lib.a
-lib_a_SOURCES = syscalls.c write.c _exit.c read.c sbrk.c misc.c crt1.c
+lib_a_SOURCES = syscalls.c _exit.c sbrk.c misc.c crt1.c \
+ close.S fstat.S lseek.S open.S read.S stat.S write.S
+
ACLOCAL_AMFLAGS = -I ../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host
@@ -103,7 +105,8 @@ DEFS = @DEFS@ -I. -I$(srcdir)
CPPFLAGS = @CPPFLAGS@
LIBS = @LIBS@
lib_a_LIBADD =
-lib_a_OBJECTS = syscalls.o write.o _exit.o read.o sbrk.o misc.o crt1.o
+lib_a_OBJECTS = syscalls.o _exit.o sbrk.o misc.o crt1.o close.o fstat.o \
+lseek.o open.o read.o stat.o write.o
CFLAGS = @CFLAGS@
COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
diff --git a/newlib/libc/sys/h8300hms/close.S b/newlib/libc/sys/h8300hms/close.S
new file mode 100644
index 000000000..54a1214d7
--- /dev/null
+++ b/newlib/libc/sys/h8300hms/close.S
@@ -0,0 +1,22 @@
+;int close(int fd);
+;Integer arguments have to be zero extended.
+
+#if defined(__H8300H__)
+ .h8300h
+#endif
+#if defined(__H8300S__)
+ .h8300s
+#endif
+
+ .section .text
+ .align 2
+ .global __close
+__close:
+#if defined(__H8300H__) || defined(__H8300S__)
+#if __INT_MAX__ == 32767
+ extu.l er0
+#endif
+#endif
+ jsr @@0xc9
+ rts
+ .end
diff --git a/newlib/libc/sys/h8300hms/fstat.S b/newlib/libc/sys/h8300hms/fstat.S
new file mode 100644
index 000000000..a6214e662
--- /dev/null
+++ b/newlib/libc/sys/h8300hms/fstat.S
@@ -0,0 +1,23 @@
+;int fstat(int filedes, struct stat *buf);
+;Integer arguments have to be zero extended.
+
+#if defined(__H8300H__)
+ .h8300h
+#endif
+#if defined(__H8300S__)
+ .h8300s
+#endif
+
+ .section .text
+ .align 2
+ .global __fstat
+__fstat:
+#if defined(__H8300H__) || defined(__H8300S__)
+#if __INT_MAX__ == 32767
+ extu.l er0
+#endif
+#endif
+ jsr @@0xcb
+ rts
+ .end
+
diff --git a/newlib/libc/sys/h8300hms/lseek.S b/newlib/libc/sys/h8300hms/lseek.S
new file mode 100644
index 000000000..1af533c14
--- /dev/null
+++ b/newlib/libc/sys/h8300hms/lseek.S
@@ -0,0 +1,23 @@
+;off_t lseek(int fildes, off_t offset, int whence);
+;Integer arguments have to be zero extended.
+
+#if defined(__H8300H__)
+ .h8300h
+#endif
+#if defined(__H8300S__)
+ .h8300s
+#endif
+
+ .section .text
+ .align 2
+ .global __lseek
+__lseek:
+#if defined(__H8300H__) || defined(__H8300S__)
+#if __INT_MAX__ == 32767
+ extu.l er0
+ extu.l er2
+#endif
+#endif
+ jsr @@0xc8
+ rts
+ .end
diff --git a/newlib/libc/sys/h8300hms/open.S b/newlib/libc/sys/h8300hms/open.S
new file mode 100644
index 000000000..f025aac60
--- /dev/null
+++ b/newlib/libc/sys/h8300hms/open.S
@@ -0,0 +1,19 @@
+;int open(const char *pathname, int flags);
+;Integer arguments have to be zero extended.
+;The second argument is taken from the stack,
+;hence it is not zero extended here.
+
+#if defined(__H8300H__)
+ .h8300h
+#endif
+#if defined(__H8300S__)
+ .h8300s
+#endif
+
+ .section .text
+ .align 2
+ .global __open
+__open:
+ jsr @@0xc5
+ rts
+ .end
diff --git a/newlib/libc/sys/h8300hms/read.S b/newlib/libc/sys/h8300hms/read.S
new file mode 100644
index 000000000..77a7f1c3a
--- /dev/null
+++ b/newlib/libc/sys/h8300hms/read.S
@@ -0,0 +1,23 @@
+;ssize_t read(int fd, void *buf, size_t count);
+;Integer arguments have to be zero extended.
+
+#if defined(__H8300H__)
+ .h8300h
+#endif
+#if defined(__H8300S__)
+ .h8300s
+#endif
+
+ .section .text
+ .align 2
+ .global __read
+__read:
+#if defined(__H8300H__) || defined(__H8300S__)
+#if __INT_MAX__ == 32767
+ extu.l er0
+#endif
+#endif
+ jsr @@0xc6
+ rts
+ .end
+
diff --git a/newlib/libc/sys/h8300hms/read.c b/newlib/libc/sys/h8300hms/read.c
deleted file mode 100644
index 01316f951..000000000
--- a/newlib/libc/sys/h8300hms/read.c
+++ /dev/null
@@ -1,27 +0,0 @@
-#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") ;
-#if defined(__H8300__) || defined(__NORMAL_MODE__)
- 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/stat.S b/newlib/libc/sys/h8300hms/stat.S
new file mode 100644
index 000000000..d4ce3ff37
--- /dev/null
+++ b/newlib/libc/sys/h8300hms/stat.S
@@ -0,0 +1,17 @@
+;int stat(const char *file_name, struct stat *buf);
+
+#if defined(__H8300H__)
+ .h8300h
+#endif
+#if defined(__H8300S__)
+ .h8300s
+#endif
+
+ .section .text
+ .align 2
+ .global __stat
+__stat:
+ jsr @@0xca
+ rts
+ .end
+
diff --git a/newlib/libc/sys/h8300hms/syscalls.c b/newlib/libc/sys/h8300hms/syscalls.c
index 3ebac8843..b716e62fc 100644
--- a/newlib/libc/sys/h8300hms/syscalls.c
+++ b/newlib/libc/sys/h8300hms/syscalls.c
@@ -1,47 +1,14 @@
/* Operating system stubs, set up for the MRI simulator */
#include <_ansi.h>
-#include <sys/types.h>
-#include <sys/stat.h>
#include <errno.h>
-
-int _DEFUN(_lseek,(file, ptr, dir),
- int file _AND
- int ptr _AND
- int dir)
-{
- return 0;
-}
-
-int _DEFUN(_close,(file),
- int file)
-{
- return -1;
-}
-
int isatty(file)
int file;
{
return 1;
}
-int _DEFUN(_fstat,(file, st),
- int file _AND
- struct stat *st)
-{
- st->st_mode = S_IFCHR;
- return 0;
-}
-
-int
-_open (path, flags)
- const char *path;
- int flags;
-{
- return 0;
-}
-
int
_unlink (path)
const char *path;
diff --git a/newlib/libc/sys/h8300hms/write.S b/newlib/libc/sys/h8300hms/write.S
new file mode 100644
index 000000000..ccd06c5b7
--- /dev/null
+++ b/newlib/libc/sys/h8300hms/write.S
@@ -0,0 +1,23 @@
+;ssize_t write(int fd, const void *buf, size_t count);
+;Integer arguments have to be zero extended.
+
+#if defined(__H8300H__)
+ .h8300h
+#endif
+
+#if defined(__H8300S__)
+ .h8300s
+#endif
+
+ .section .text
+ .align 2
+ .global __write
+__write:
+#if defined(__H8300H__) || defined(__H8300S__)
+#if __INT_MAX__ == 32767
+ extu.l er0
+#endif
+#endif
+ jsr @@0xc7
+ rts
+ .end
diff --git a/newlib/libc/sys/h8300hms/write.c b/newlib/libc/sys/h8300hms/write.c
deleted file mode 100644
index 22fc63d57..000000000
--- a/newlib/libc/sys/h8300hms/write.c
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-int _write(file, ptr, len)
- int file;
- char *ptr;
- int len;
-{
- int todo;
-
- for (todo = 0; todo < len; todo++)
- {
- asm("mov.b #0,r1l\n mov.b %0l,r2l\njsr @@0xc4" : : "r" (*ptr++) : "r1", "r2");
- }
- return len;
-}
-