summaryrefslogtreecommitdiffstats
path: root/cpukit/libfs/src/imfs (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-07-25imfs: Add <rtems/imfsimpl.h>Sebastian Huber11-11/+11
2022-04-07imfs: Fix index underrun when extending empty fileChristian Mauderer1-1/+2
Currently the following sequence causes a endless loop when extending an IMFS file: - Create a file with zero length and close it. - Make sure nearly no allocatable memory is left. - Open the file and write enough data into it that more than the remaining memory will be used. In that case when extending the IMFS file, the file currently need zero blocks. If allocating enough new blocks fails, the already allocated new blocks will be freed again. The comparison of block>=old_blocks that has been used prior to this patch compared two unsigned numbers. If old_blocks was zero, the comparison of these two numbers always evaluated to true. This patch frees the last block in a separate step to avoid this problem. Fixes #4639
2022-03-22cpukit/libfs/src/imfs: Change license to BSD-2Joel Sherrill28-84/+616
Updates #3053.
2022-03-10cpukit/: Scripted embedded brains header file clean upJoel Sherrill1-6/+0
Updates #4625.
2021-05-28Change filesystem utime_h handler to utimens_hRyan Long3-47/+82
Also updated licenses. Closes #4400 Updates #3899
2020-07-14rtems: Remove deprecated rtems_io_lookup_name()Sebastian Huber1-21/+0
Close #3420.
2020-04-28doxygen: Switch @brief and @ingroupSebastian Huber24-24/+48
This order change fixes the Latex documentation build via Doxygen.
2020-04-16Canonicalize config.h includeSebastian Huber34-61/+61
Use the following variant which was already used by most source files: #ifdef HAVE_CONFIG_H #include "config.h" #endif
2020-03-09imfs: Replace devfs with an IMFS specializationSebastian Huber1-0/+163
Add a simplified path evaluation function IMFS_eval_path_devfs() for a device only IMFS configuration. The code size can be further reduced by the application if it disables the support for legacy IO drivers via: #define CONFIGURE_IMFS_DISABLE_MKNOD #define CONFIGURE_IMFS_DISABLE_MKNOD_DEVICE Obsolete CONFIGURE_MAXIMUM_DEVICES. Remove BSP_MAXIMUM_DEVICES. Update #3894. Update #3898.
2020-03-09imfs: Simplify code generationSebastian Huber1-11/+17
Update #3894.
2020-03-09imfs: Remove unused handlersSebastian Huber1-6/+1
Update #3894.
2020-03-09imfs: Constify imfs_memfile_bytes_per_blockSebastian Huber2-37/+0
The CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK value is validated by <rtems/confdefs/libio.h>. Changing this value during runtime could lead to memory corruption. Update #3894.
2020-03-09imfs: Use _IMFS_get_time()Sebastian Huber1-6/+5
Update #3894.
2020-03-04imfs: Add IMFS_add_node()Sebastian Huber3-5/+162
Update #3894.
2020-03-04imfs: Simplify IMFS_create_node()Sebastian Huber1-3/+4
Update #3894.
2020-03-04imfs: Remove IMFS_NODE_FLAG_NAME_ALLOCATEDSebastian Huber2-14/+39
Remove IMFS_NODE_FLAG_NAME_ALLOCATED and instead replace the node control in rename operations. This avoids a special case in the general node destruction which pulled in free(). Update #3894.
2019-11-25untar: Unify untar supportSebastian Huber1-142/+55
Update #3823.
2019-11-21imfs: Fix IMFS_make_linearfile()Sebastian Huber1-2/+2
Fix prototype. Fix node size. Linfiles are dynamically turned into memfiles. Update #3823.
2019-11-19imfs: Add IMFS_make_linfile()Sebastian Huber4-20/+105
Update #3818.
2019-02-05fs: Add struct dirent::d_type supportSebastian Huber1-0/+3
2018-01-25Remove make preinstallChris Johns1-946/+0
A speciality of the RTEMS build system was the make preinstall step. It copied header files from arbitrary locations into the build tree. The header files were included via the -Bsome/build/tree/path GCC command line option. This has at least seven problems: * The make preinstall step itself needs time and disk space. * Errors in header files show up in the build tree copy. This makes it hard for editors to open the right file to fix the error. * There is no clear relationship between source and build tree header files. This makes an audit of the build process difficult. * The visibility of all header files in the build tree makes it difficult to enforce API barriers. For example it is discouraged to use BSP-specifics in the cpukit. * An introduction of a new build system is difficult. * Include paths specified by the -B option are system headers. This may suppress warnings. * The parallel build had sporadic failures on some hosts. This patch removes the make preinstall step. All installed header files are moved to dedicated include directories in the source tree. Let @RTEMS_CPU@ be the target architecture, e.g. arm, powerpc, sparc, etc. Let @RTEMS_BSP_FAMILIY@ be a BSP family base directory, e.g. erc32, imx, qoriq, etc. The new cpukit include directories are: * cpukit/include * cpukit/score/cpu/@RTEMS_CPU@/include * cpukit/libnetworking The new BSP include directories are: * bsps/include * bsps/@RTEMS_CPU@/include * bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILIY@/include There are build tree include directories for generated files. The include directory order favours the most general header file, e.g. it is not possible to override general header files via the include path order. The "bootstrap -p" option was removed. The new "bootstrap -H" option should be used to regenerate the "headers.am" files. Update #3254.
2017-12-13IMFS: Include <rtems/imfs.h>Sebastian Huber29-29/+29
Prepare for header file move to common include directory. Update #3254.
2017-09-15libio: Add rtems_libio_iop_is_append()Sebastian Huber1-1/+1
Update #3132.
2017-09-15libio: Add rtems_libio_iop_is_writeable()Sebastian Huber1-1/+1
Update #3132.
2017-09-15libio: Add iop set/clear flagsSebastian Huber1-2/+2
Update #3132.
2017-08-25Include missing <string.h>Sebastian Huber1-0/+2
Update #2133.
2017-07-14posix/mmap: Add support for file handler and MAP_ANONKevin Kirspel8-0/+8
Added a mmap file handler to struct _rtems_filesystem_file_handlers_r. Updated each file handler object to support the default mmap handler. Updated mmap() to call the mmap handler for MAP_SHARED. Added a mmap file handler for shm Added support for MAP_ANON in mmap(). Updates #2859
2017-06-07Do not include <sys/ioctl.h> in kernel-spaceSebastian Huber1-0/+2
Update #2833.
2016-09-19imfs: Untangle dependenciesSebastian Huber2-89/+115
This helps to use IMFS_make_generic_node() without pulling in the complete IMFS implementation.
2016-09-16imfs: Fix IMFS_stat_file()Sebastian Huber2-6/+3
Use the adjusted and not the requested memfile bytes per block. Untangle dependencies.
2016-01-05Filesystem: Remove superfluous permission checksSebastian Huber1-15/+1
The permission is check by the upper layer.
2015-11-23untar: do not exit with error when created directory already exists.Pavel Pisa1-1/+17
The problem exists for both RTEMS untar implementations and their variants: Untar_FromMemory(), Untar_FromFile() and rtems_tarfs_load(). If filesystem object already exists at extracted directory path then if it is directory, creation is ignored. Attempt to delete/unlink object and make directory is tried for other cases. This simple approach problem reported in ticket fixes #2413. Behavior follows GNU tar and BSD tar practice for directories but much more work is required to achieve full semantics of the full featured tar implementation still.
2015-03-24imfs.h: Add cast to remove warning for pointer/integer size mismatchJoel Sherrill1-1/+1
2015-03-17IMFS: NUL-terminate name returned by readdir()Sebastian Huber1-2/+5
2015-03-16IMFS: don't strlen() an unterminated string in IMFS_dir_read().Jamie Iles1-1/+1
a43a3466 (IMFS: Implement variable length node names) introduced a changed to IMFS_jnode_t from being a null terminated string to a separate unterminated string and length. IMFS_dir_read() was still performing a strlen() on this unterminated string though and when doing an 'ls' in the fileio example I saw that some filenames had garbage suffixes.
2015-03-05IMFS: Fix warningSebastian Huber1-1/+1
2015-03-05IMFS: Include missing header fileSebastian Huber1-0/+1
2015-03-05IMFS: Fix warningSebastian Huber1-1/+1
2015-02-20IMFS: Fix copy on write for linfilesSebastian Huber1-0/+3
2015-02-18IMFS: Silence warningSebastian Huber1-1/+1
2015-02-15IMFS: Implement variable length node namesSebastian Huber5-25/+46
This reduces the average node size and adds more flexibility.
2015-02-14IMFS: Add CONFIGURE_IMFS_DISABLE_READDIRSebastian Huber6-138/+168
2015-02-12IMFS: Add fine grained configurationSebastian Huber6-183/+7
Remove miniIMFS. Statically initialize the root IMFS. Add configuration options to disable individual features of the root IMFS, e.g. o CONFIGURE_IMFS_DISABLE_CHOWN, o CONFIGURE_IMFS_DISABLE_FCHMOD, o CONFIGURE_IMFS_DISABLE_LINK, o CONFIGURE_IMFS_DISABLE_MKNOD, o CONFIGURE_IMFS_DISABLE_MOUNT, o CONFIGURE_IMFS_DISABLE_READLINK, o CONFIGURE_IMFS_DISABLE_RENAME, o CONFIGURE_IMFS_DISABLE_RMNOD, o CONFIGURE_IMFS_DISABLE_SYMLINK, o CONFIGURE_IMFS_DISABLE_UNMOUNT, and o CONFIGURE_IMFS_DISABLE_UTIME.
2015-02-12IMFS: Allow static initialization of FS infoSebastian Huber6-100/+118
2015-02-12IMFS: Fix resource leakSebastian Huber1-1/+9
2015-02-12IMFS: Add root directory to FS infoSebastian Huber4-88/+69
Fix memory leak in IMFS_fsunmount().
2015-02-12IMFS: Simplify IMFS_symlink()Sebastian Huber1-26/+7
2015-02-12IMFS: Split linfile and memfile modulesSebastian Huber4-165/+133
Make several functions static.
2015-02-12IMFS: Introduce IMFS_mknod_controlSebastian Huber16-76/+94
Drop IMFS_node_control::node_size field and add node_size parameter to IMFS_allocate_node() and IMFS_create_node(). This reduces the size of generic nodes.
2015-02-09Filesystem: Delete unused fsmountme_h handlerSebastian Huber3-3/+0