* spu/sbrk.c: Use the current stack pointer value rather than the
maximum available memory to determine the amount of heap space
left. Without this change calling sbrk() can allocate space that
is currently in use on the stack.
* spu/Makefile.in: Add new files.
* spu/jsre.h: Add JSRE_PREAD, JSRE_PWRITE, JSRE_READV, and
JSRE_WRITEV opcodes.
* spu/pread.c: New file to add pread via assist call.
* spu/pwrite.c: New file to add pwrite via assist call.
* spu/readv.c: New file to add readv via assist call.
* spu/writev.c: New file to add writev via assist call.
* spu/jsre.h: Add JSRE_SCHED_YIELD, JSRE_UMASK, JSRE_UTIME, and
JSRE_UTIMES.
* spu/sched_yield.c: New file add sched_yield via assist call.
* spu/umask.c: New file add umask via assist call.
* spu/utime.c: New file add utime via assist call.
* spu/utimes.c: New file add utimes via assist call.
* spu/Makefile.in: Add new files.
* spu/jsre.h: Add JSRE_SHM_OPEN and JSRE_SHM_UNLINK opcodes.
* spu/shm_open.c: New file to add shm_open via assist call.
* spu/shm_unlink.c: New file to add shm_unlink via assist call.
* spu/Makefile.in: Add shm_open.o and shm_unlink.o
* spu/dirfuncs.c: New file, holds the opendir, closedir, readdir,
rewinddir, seekdir and telldir implementations. These are
grouped in one file so that we do not need a separate file for
the struct dirent and DIR allocation code.
* spu/jsre.h: Add JSRE_OPENDIR and other dir opcodes.
* spu/Makefile.in: Add dirfuncs.o.
2007-07-12 Daniel Jacobowitz <dan@codesourcery.com>
* arm/syscalls.c (_stat): Use _close
* arm/syscalls.c (struct poslog): Rename to...
(struct fdent): ... this.
(FILE_HANDLE_OFFSET): Remove.
(findslot): Return a struct fdent* if fd is valid, otherwise return NULL.
(newslot): New function.
(remap_handle): Remove.
(initialise_monitor_handles): Use stdout as fallback for stderr.
(wrap): Rename to...
(checkerror): ... this.
(_swiread): Use checkerror() for the return of SWI calls. Correct the use of r0.
(_read): Use findslot(). Return EBADF on bad handle.
(_swilseek): Call findslot(). Check for valid whence. Check for negative offset when using
SEEK_CUR, and check for overflow. Use checkerror(). Check *_Flen calls for errors.
(_swiwrite): Correct the use of r0.
(_write): Call findslot().
(_swiopen): Call findslot(). Check for valid flags. Use checkerror(). Call newslot().
Handle O_TRUNC, and O_WRONLY. Return index into openfiles[] for fd.
(_swiclose): Correct the use of r0.
(_close): Handle stderr == stdout case. Only reclaim handle if _swiclose succeeded.
(_getpid): Use __attribute__((unused)).
(_sbrk): Fix formatting.
(_swistat): New function.
(_stat): Call _swistat().
(_fstat): Call _swistat().
(_unlink): Correct the use of r0.
(isatty): Call finslot(). Correct the use of r0.
(_system): Call checkerror(). Correct the use of r0.
(_rename): Correct the use of r0.
* spu/jsre.h: Add JSRE_MKSTEMP and JSRE_MKTEMP values.
* spu/mkstemp.c: New file to add mkstemp support via assist call.
* spu/mktemp.c: New file to add mktemp support via assist call.
* spu/Makefile.in: Add mkstemp.o and mktemp.o
* spu/jsre.h: Add new JSRE opcodes.
* spu/dup2.c: New file to add dup2 support via assist call.
* spu/fdatasync.c: New file to add fdatasync support via assist call.
* spu/fsync.c: New file to add fsync support via assist call.
* spu/lockf.c: New file to add lockf support via assist call.
* spu/sync.c: New file to add sync support via assist call.
* spu/truncate.c: New file to add truncate support via assist call.
* spu/Makefile.in: Add new files.
* spu/jsre.h: JSRE_LINK, JSRE_SYMLINK and JSRE_READLINK.
* spu/link.c: New file to add link support via an assist call.
* spu/readlink.c: New file to add readlink support via an assist call.
* spu/symlink.c: New file to add symlink support via an assist call.
* spu/Makefile.in: Add new files.
* spu/jsre.h: Add JSRE_LSTAT.
* spu/lstat.c: New file add lstat support via an assist call.
* spu/conv_stat.c: New file, add common stat conversion code.
* spu/fstat.c: Use __conv_stat.
* spu/stat.c: Use __conv_stat.
* spu/Makefile.in: Add conv_stat.o and lstat.o.
* spu/jsre.h: Add defines for new assist calls.
* spu/chdir.c: New file, support chdir via assist call.
* spu/chmod.c: New file, support chmod via assist call.
* spu/chown.c: New file, support chown via assist call.
* spu/fchdir.c: New file, support fchdir via assist call.
* spu/fchmod.c: New file, support fchmod via assist call.
* spu/fchown.c: New file, support fchown via assist call.
* spu/lchown.c: New file, support lchown via assist call.
* spu/mkdir.c: New file, support mkdir via assist call.
* spu/mknod.c: New file, support mknod via assist call.
* spu/rmdir.c: New file, support rmdir via assist call.
* spu/Makefile.in: Add new files.
* spu/jsre.h: Remove the assist call structs and defines that are
specific to one assist call from here.
* spu/access.c: Move struct syscall_access_t to here.
* spu/fstat.c: Move struct syscall_fstat_t to here.
* spu/ftruncate.c: Move struct syscall_ftruncate_t to here.
* spu/gettimeofday.c: Move struct syscall_gettimeofday_t to here.
* spu/lseek.c: Move struct syscall_lseek_t and JSRE_SEEK defines to
here.
* spu/open.c: Move struct syscall_open_t and JSRE_O_ defines to here.
* spu/read.c: Move struct syscall_read_t to here, and actually use
it (it is the same as syscall_write_t).
* spu/stat.c: Move struct syscall_stat_t to here.
* spu/write.c: Move struct syscall_write_t to here.
* spu/close.c: Pass the address of the first and only argument to
__send_to_ppe rather than using an automatic variable and a
special struct.
* spu/dup.c: Ditto.
* spu/unlink.c: Ditto.