*** newlib/libc/sys/h8300hms/syscalls.c.original Thu Nov 14 17:19:38 2002 --- newlib/libc/sys/h8300hms/syscalls.c.modified Thu Dec 26 17:05:50 2002 *************** *** 4,9 **** --- 4,10 ---- #include #include #include + #include "sys/syscall.h" int _DEFUN(_lseek,(file, ptr, dir), *************** int _DEFUN(_lseek,(file, ptr, dir), *** 11,23 **** int ptr _AND int dir) { ! return 0; } int _DEFUN(_close,(file), int file) { ! return -1; } int isatty(file) --- 12,24 ---- int ptr _AND int dir) { ! asm ("jsr @@0xc8"); } int _DEFUN(_close,(file), int file) { ! asm ("jsr @@0xc9"); } int isatty(file) *************** int _DEFUN(_fstat,(file, st), *** 30,37 **** int file _AND struct stat *st) { ! st->st_mode = S_IFCHR; ! return 0; } int --- 31,37 ---- int file _AND struct stat *st) { ! asm ("jsr @@0xcb"); } int *************** _open (path, flags) *** 39,45 **** const char *path; int flags; { ! return 0; } int --- 39,45 ---- const char *path; int flags; { ! asm ("jsr @@0xc5"); } int *************** _unlink (path) *** 49,51 **** --- 49,59 ---- errno = EIO; return -1; } + + int _DEFUN(_stat,(path, sbuf), + const char *path _AND + struct stat *st) + { + asm ("jsr @@0xca"); + } + *** newlib/libc/sys/h8300hms/read.c.original Thu Nov 14 17:20:04 2002 --- newlib/libc/sys/h8300hms/read.c.modified Thu Dec 26 17:05:58 2002 *************** int _read(file, ptr, len) *** 5,27 **** 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; } --- 5,11 ---- char *ptr; int len; { ! asm ("jsr @@0xc6") ; } *** newlib/libc/sys/h8300hms/write.c.original Thu Nov 14 17:20:19 2002 --- newlib/libc/sys/h8300hms/write.c.modified Thu Dec 26 17:06:06 2002 *************** int _write(file, ptr, len) *** 5,16 **** 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; } --- 5,10 ---- char *ptr; int len; { ! asm ("jsr @@0xc7"); }