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.
This commit is contained in:
Jeff Johnston 2003-02-25 20:36:29 +00:00
parent 5ffa5aaa5c
commit 41a639dea8
13 changed files with 175 additions and 81 deletions

View File

@ -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:

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;
}

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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;
}