* src/imfs/memfile.c: Fixed case where last close of unlinked file
did not remove the resources associated with that file. Reported
by Till Straumann <strauman@slac.stanford.edu> on the mailing list.
* src/dosfs/fat.c, src/imfs/deviceio.c, src/imfs/imfs.h,
src/imfs/imfs_directory.c, src/imfs/imfs_fchmod.c,
src/imfs/memfile.c: Eliminated warnings. A lot of this focus
was on changing read and write entry points to return ssize_t
as read(2) and write(2) now do.
* src/dosfs/Makefile.am: Use AM_CPPFLAGS instead of INCLUDES and
AM_CFLAGS. Eliminate LIBNAME.
* src/imfs/Makefile.am: Use AM_CPPFLAGS instead of INCLUDES and
AM_CFLAGS. Eliminate LIBNAME.
* wrapup/Makefile.am: Eliminate LIBNAME.
* src/dosfs/Makefile.am: Include $(top_srcdir)/../automake/*.am.
* src/Makefile.am: Include $(top_srcdir)/../automake/*.am.
* src/imfs/Makefile.am: Include $(top_srcdir)/../automake/*.am.
* Makefile.am: Include $(top_srcdir)/../automake/*.am.
Use ../aclocal.
* wrapup/Makefile.am: Include $(top_srcdir)/../automake/*.am.
* src/imfs/imfs_getchild.c: include <string.h>.
* src/imfs/imfs_gtkn.c: Include <string.h>.
* src/imfs/ioman.c: Include <string.h>.
* src/imfs/linearfile.c: Include <string.h>.
* src/imfs/memfile.c: Include <string.h>.
* src/imfs/imfs_load_tar.c: Add include <sys/types.h>.
Add include <sys/stat.h>. Add include <fcntl.h>.
* src/imfs/imfs_rmnod.c: Add include <stdlib.h>.
* src/imfs/imfs_initsupp.c: Create the root node with the
desired permissions. Nodes should be created with the right
permissions because chmod() is not supported by the miniIMFS
so changing after creation is not possible.
* src/imfs/memfile.c (memfile_open): Did not set iop->size
and thus the value was incorrect. Before this field was cleared,
this resulted in the value from the last time that IOP was used
being still in place. Discovered by Andrew Bythell
<abythell@nortelnetworks.com>.
* src/imfs/imfs_debug.c (IMFS_print_jnode): Modified to print
only information that does not vary based on target or memory
configuration. The old prints are still there in case they
are needed in the future to debug. Printing target dependent
addresses makes the test output vary by target unnecessarily.
* src/imfs/memfile.c: Reapply fix from bug report from
Jose Sturniolo <jsturnio@nec.com.ar> where NULL pointer
was dereferenced when freeing a triply indirect file.
The fix was applied to the 4.5 release branch and not
the development branch.
* src/imfs/imfs.h, src/imfs/imfs_creat.c, src/imfs/imfs_debug.c,
src/imfs/imfs_eval.c, src/imfs/imfs_fchmod.c,
src/imfs/imfs_handlers_memfile.c, src/imfs/imfs_init.c,
src/imfs/imfs_initsupp.c, src/imfs/imfs_stat.c, src/imfs/memfile.c,
src/imfs/miniimfs_init.c: Final developmental update to "tarfs".
When rtems_tarfs_load() is called, it checks the permissions
on each file. If there is write permission, it just creates a
standard file using "creat()" and therefore, uses the IMFS MEMORY_FILE.
If there is no write permission, it creates a LINEAR_FILE node
with the appropriate properties. If the permission is ever changed
to writeable, IMFS_fchmod converts it to a regular memory file.
* src/imfs/linearfile.c, src/imfs/imfs_load_tar.c: New files.
* src/imfs/Makefile.am, src/imfs/imfs.h,
src/imfs/imfs_creat.c, src/imfs/imfs_debug.c,
src/imfs/imfs_eval.c, src/imfs/imfs_handlers_memfile.c,
src/imfs/imfs_init.c, src/imfs/imfs_initsupp.c,
src/imfs/imfs_stat.c, src/imfs/miniimfs_init.c: Added "tarfs".
This is not really a tar filesystem. It is a way to load a tar
image into the IMFS but actually leave bulky file contents in the
original tar image. It essentially adds the linear file type and
associated support and a loader routine.
* src/imfs/Makefile.am, src/imfs/deviceio.c, src/imfs/imfs_chown.c,
src/imfs/imfs_config.c, src/imfs/imfs_creat.c, src/imfs/imfs_debug.c,
src/imfs/imfs_directory.c, src/imfs/imfs_eval.c, src/imfs/imfs_fchmod.c,
src/imfs/imfs_free.c, src/imfs/imfs_fsunmount.c, src/imfs/imfs_gtkn.c,
src/imfs/imfs_init.c, src/imfs/imfs_initsupp.c, src/imfs/imfs_link.c,
src/imfs/imfs_mknod.c, src/imfs/imfs_mount.c, src/imfs/imfs_readlink.c,
src/imfs/imfs_rmnod.c, src/imfs/imfs_stat.c, src/imfs/imfs_symlink.c,
src/imfs/imfs_unixstub.c, src/imfs/imfs_unlink.c,
src/imfs/imfs_unmount.c, src/imfs/imfs_utime.c, src/imfs/ioman.c,
src/imfs/memfile.c, src/imfs/miniimfs_init.c:
assoc.h, error.h, libio_.h, libio.h, and libcsupport.h moved
from libc to lib/include/rtems and now must be referenced as
<rtems/XXX.h>. Now we do not have to reach up and over to
libc to pick them up.