Commit Graph

597 Commits

Author SHA1 Message Date
Joel Sherrill
a0756c9aa0 2000-10-24 Joel Sherrill <joel@OARcorp.com>
* src/imfs/imfs_config.c: New file containing IMFS configuration
	information split from libc/base_fs.c.
	* src/imfs/ioman.c: New file. Moved from lib/libc. Missed previously.
	* src/imfs/Makefile.am: Added imfs_config.c and ioman.c.
2000-10-25 16:51:22 +00:00
Joel Sherrill
7ec7cf7491 2000-10-24 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* Makefile.am, configure.in:  Introduce GNU canonicalization to libfs/.
	The approach is currently a bit of a hack as GNU canonicalization
	does not support the per-BSP build some of the other directories
	require.  As more of the tree is converted, this will become less
	of an issue.
2000-10-24 22:06:00 +00:00
Joel Sherrill
5b59c4d46a 2000-10-19 Joel Sherrill <joel@OARcorp.com>
* .cvsignore, src/.cvsignore, src/imfs/.cvsignore, wrapup/.cvsignore:
	New files.
2000-10-19 15:52:22 +00:00
Joel Sherrill
d71c6c1f0e 2000-10-18 Chris Johns <ccj@acm.org>
* libfs created.
	* src, src/imfs, wrapup: New directories.
	* ChangeLog, Makefile.am, README, configure.in, src/Makefile.am,
	wrapup/Makefile.am: New files.
	* src/imfs/deviceio.c, src/imfs/imfs_getchild.c,
	src/imfs/imfs_readlink.c, src/imfs/imfs.h, src/imfs/imfs_gtkn.c,
	src/imfs/imfs_rmnod.c, src/imfs/imfs_chown.c,
	src/imfs/imfs_handlers_device.c, src/imfs/imfs_stat.c,
	src/imfs/imfs_creat.c, src/imfs/imfs_handlers_directory.c,
	src/imfs/imfs_symlink.c, src/imfs/imfs_debug.c,
	src/imfs/imfs_handlers_link.c, src/imfs/imfs_unixstub.c,
	src/imfs/imfs_directory.c, src/imfs/imfs_handlers_memfile.c,
	src/imfs/imfs_unlink.c, src/imfs/imfs_eval.c, src/imfs/imfs_init.c,
	src/imfs/imfs_unmount.c, src/imfs/imfs_fchmod.c,
	src/imfs/imfs_initsupp.c, src/imfs/imfs_utime.c, src/imfs/imfs_fcntl.c,
	src/imfs/imfs_link.c, src/imfs/memfile.c, src/imfs/imfs_fdatasync.c,
	src/imfs/imfs_mknod.c, src/imfs/miniimfs_init.c, src/imfs/imfs_free.c,
	src/imfs/imfs_mount.c, src/imfs/imfs_fsunmount.c, src/imfs/imfs_ntype.c:
	New files. Moved from libc.
2000-10-18 18:10:55 +00:00
Joel Sherrill
9c3fa30a11 2000-09-28 Joel Sherrill <joel@OARcorp.com>
* libc/libio.h (rtems_filesystem_file_handlers_r,
	rtems_filesystem_operations_table): Added _h to all structure
	fields to indicate they are "handlers".
	* libc/libio_.h, libc/chdir.c, libc/chmod.c, libc/chown.c,
	libc/close.c, libc/eval.c, libc/fchdir.c, libc/fchmod.c,
	libc/fcntl.c, libc/fdatasync.c, libc/fstat.c, libc/fsync.c,
	libc/ftruncate.c, libc/getdents.c, libc/imfs_eval.c,
	libc/imfs_unlink.c, libc/ioctl.c, libc/ioman.c, libc/link.c,
	libc/lseek.c, libc/mknod.c, libc/mount.c, libc/open.c, libc/read.c,
	libc/readlink.c, libc/rmdir.c, libc/stat.c, libc/symlink.c,
	libc/unlink.c, libc/unmount.c, libc/utime.c, libc/write.c:
	Modified to reflect above name change.
2000-09-28 20:19:23 +00:00
Joel Sherrill
662678d1d9 2000-08-25 Joel Sherrill <joel.sherrill@OARcorp.com>
* libc/isatty.c, libc/imfs_handlers_directory.c, libc/creat.c,
	libc/imfs_directory.c: Fixed style issues.
2000-08-25 13:13:57 +00:00
Joel Sherrill
dd19c0bb06 2000-08-11 Chris Johns <ccj@acm.org>
* libc/chmod.c: Return ENOTSUP if filesystem does not have handler.
	* libc/eval.c: Ditto.
	* libc/fcntl.c: Ditto.
	* libc/fsync.c: Ditto.
	* libc/ioctl.c: Ditto.
	* libc/ioman.c: Ditto.
	* libc/link.c: Ditto.
	* libc/memfile.c: Ditto.
	* libc/mknod.c: Ditto.
	* libc/symlink.c: Ditto.
	* libc/libio.h(rtems_filesystem_dev_major_t): New macro.
	* libc/libio.h(rtems_filesystem_dev_minor_t): New macro.
2000-08-11 20:04:27 +00:00
Joel Sherrill
3af082818e Fixed stat_ino should be st_ino. 2000-07-02 12:29:47 +00:00
Joel Sherrill
068b64735c Patch from Chris Johns <cjohns@cybertec.com.au> so the directory
read function in the IMFS properly returns the inode number.
2000-06-30 12:36:32 +00:00
Joel Sherrill
e5d6705e46 Patch from Chris Johns <cjohns@cybertec.com.au> to add support for
stat()'ing a symbolic link.  This is needed to support the port
of the BSD commands like ls to RTEMS.
2000-06-30 12:33:13 +00:00
Joel Sherrill
e42a135973 Patch from Chris Johns <cjohns@cybertec.com.au> and
Jennifer Averett <jennifer.averett@oarcorp.com> to fix
appends (O_APPEND at open time) on in-memory files.

A call such as:

    fd = open (file, O_APPEND | O_WRONLY);

did not append to the end of the file.
2000-06-26 14:49:58 +00:00
Joel Sherrill
5e0e012cda Patch from Chris Johns <cjohns@cybertec.com.au> and
Jennifer Averett <jennifer.averett@oarcorp.com> to make sure
"/" is created with S_IFDIR set.
2000-06-26 14:46:19 +00:00
Joel Sherrill
df49c60c96 Merged from 4.5.0-beta3a 2000-06-12 15:00:15 +00:00
Joel Sherrill
562e7ed1ed Increased block size to 128 and added comments based on feedback from
Java folks including Oscar Martinez de la Torre <omt@wm.estec.esa.nl>.
2000-02-11 15:54:47 +00:00
Joel Sherrill
3a8b95e207 Spacing corrected. 2000-01-05 21:32:57 +00:00
Joel Sherrill
08311cc3a9 Updated copyright notice. 1999-11-17 17:51:34 +00:00
Jennifer Averett
18c315533b Added handler for fsync. For the memfile it is the same as the data sync. 1999-11-16 22:45:33 +00:00
Joel Sherrill
b440e57bdb Added imfs_unixstub.c to satisfy linker problems on UNIX port. 1999-11-09 13:40:30 +00:00
Jennifer Averett
f758f8102a Correctly set and called handlers table for the link. 1999-11-05 22:26:12 +00:00
Jennifer Averett
089ad91deb Fixed comment 1999-11-05 22:25:16 +00:00
Jennifer Averett
7f6a07504e Moved imfs set handlers prototype to the imfs.h file. 1999-11-05 22:24:56 +00:00
Joel Sherrill
378fe02519 New file. 1999-11-05 21:11:09 +00:00
Joel Sherrill
94b357c2b3 Unmount was failing as a side-effect of splitting the rmnod handler
and not handling every case properly.
1999-11-05 21:10:54 +00:00
Joel Sherrill
b568ccb745 The object memfile.o was being included in the miniIMFS even though it
should not have been.  This required that IMFS_rmnod be split into
three separate (per file type) routines to avoid dependencies.
In the end, a miniIMFS application is 6K smaller than one using the
full IMFS.
1999-11-02 20:20:13 +00:00
Joel Sherrill
3fb2a8daf7 Fixed typo where memfile_handlers set twice and directory_handlers
was not set.
1999-11-02 16:23:50 +00:00
Joel Sherrill
ac8adcf06f Properly initialize location variable. 1999-11-02 16:22:58 +00:00
Jennifer Averett
4a07d2b866 Moved the rmnod callback from the operations table to the handler table. 1999-10-29 15:19:13 +00:00
Joel Sherrill
79991746da New files created by split of old imfs_handlers.c. 1999-10-26 21:51:20 +00:00
Joel Sherrill
657e1bf66b Added initial cut at miniIMFS which leaves out memfile and directory
readdir support.  The next step is to add a mount table and configure
either the miniIMFS or the full IMFS at the application level.
1999-10-26 20:17:13 +00:00
Joel Sherrill
1e57186135 Patch from Eric Valette <valette@crf.canon.fr> and Emmanuel Raguet
<raguet@crf.canon.fr> to use a local variable.
1999-10-25 14:46:56 +00:00
Joel Sherrill
c774a07e88 Changed leading spaces to periods to ease comparing test output. 1999-10-25 14:09:46 +00:00
Joel Sherrill
a6883c4eb9 Spacing. 1999-10-12 20:22:27 +00:00
Joel Sherrill
51435fc7c5 Split null handlers table to own file and renamed.
Renamed IMFS handler tables to include IMFS prefix.
1999-10-12 19:26:37 +00:00
Joel Sherrill
dd0f32614c Added rtems_filesystem_freenode() macro and added calls at appropriate
places to make sure memory allocated for filesystem specifif nodes
gets freed.
1999-10-12 19:10:46 +00:00
Joel Sherrill
578a415014 Corrected mistakes in the IMFS file handlers table and added the missing
routine imfs_fcntl.c
1999-10-12 19:08:55 +00:00
Joel Sherrill
d71fcabaa6 Added call to freenod to let each filesystem free its own internal
node used to manage file access.
1999-10-12 18:44:40 +00:00
Joel Sherrill
0ac8e382e9 Warning removal from D. V. Henkel-Wallace <gumby@zembu.com>. 1999-06-14 19:44:07 +00:00
Joel Sherrill
556ea0e3ba Removed usage of printf. 1999-05-27 16:12:20 +00:00
Jennifer Averett
ec2328eeaf Removed asserts that shouldn't be called and commented case where this
indicates an internal error.
1999-03-31 23:24:57 +00:00
Joel Sherrill
b10f6e12e0 Corrected bug where pointer to doubly linked blocks was being incorrectly
calculated.
1999-03-08 21:39:39 +00:00
Joel Sherrill
3cf8394af5 Changed IMFS to use IMFS_NAME_MAX as the maximum length of a basename
rather then NAME_MAX.  NAME_MAX is 255 and that lets IMFS chew up memory
too fast.  Perhaps in the future, the places in IMFS that put a maximum
length name string on the stack and the jnode structure does not include
a maximu length name string can be fixed so this is not a problem.
1999-02-24 20:58:47 +00:00
Joel Sherrill
efb1b830bb Corrected multiple places the file size was not being properly updated. 1999-02-10 17:04:54 +00:00
Joel Sherrill
2f87c84349 Corrected spacing and added some new error checks that were needed
to avoid dereferencing NULLs.
1999-02-05 00:28:43 +00:00
Jennifer Averett
a4e2f08c25 Added imfs_fdatasync routine that gets called from both fdatasync and datasync. 1998-12-03 22:19:06 +00:00
Jennifer Averett
49629bd8cb Added a imfs fdatasync routine that gets called for fdatasync and datasync. 1998-12-03 22:17:46 +00:00
Jennifer Averett
7a3878b26f Modifications for RTEMS_UNIX. 1998-12-03 22:17:13 +00:00
Joel Sherrill
07a3253de2 Added base version of file system infrastructure. This includes a major
overhaul of the RTEMS system call interface.  This base file system is
the "In-Memory File System" aka IMFS.

The design and implementation was done by the following people:

  + Joel Sherrill (joel@OARcorp.com)
  + Jennifer Averett (jennifer@OARcorp.com)
  + Steve "Mr Mount" Salitasc (salitasc@OARcorp.com)
  + Kerwin Wade (wade@OARcorp.com)

PROBLEMS
========
  + It is VERY likely that merging this will break the UNIX port.  This
    can/will be fixed.

  + There is likely some reentrancy/mutual exclusion needed.

  + Eventually, there should be a "mini-IMFS" description table to
    eliminate links, symlinks, etc to save memory.  All you need to
    have "classic RTEMS" functionality is technically directories
    and device IO.  All the rest could be left out to save memory.
1998-11-23 19:07:58 +00:00