summaryrefslogtreecommitdiffstats
path: root/cpukit/libfs/src/imfs (follow)
Commit message (Collapse)AuthorAgeFilesLines
* imfs: Add <rtems/imfsimpl.h>Sebastian Huber2022-07-2511-11/+11
|
* imfs: Fix index underrun when extending empty fileChristian Mauderer2022-04-071-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
* cpukit/libfs/src/imfs: Change license to BSD-2Joel Sherrill2022-03-2228-84/+616
| | | | Updates #3053.
* cpukit/: Scripted embedded brains header file clean upJoel Sherrill2022-03-101-6/+0
| | | | Updates #4625.
* Change filesystem utime_h handler to utimens_hRyan Long2021-05-283-47/+82
| | | | | | | Also updated licenses. Closes #4400 Updates #3899
* rtems: Remove deprecated rtems_io_lookup_name()Sebastian Huber2020-07-141-21/+0
| | | | Close #3420.
* doxygen: Switch @brief and @ingroupSebastian Huber2020-04-2824-24/+48
| | | | This order change fixes the Latex documentation build via Doxygen.
* Canonicalize config.h includeSebastian Huber2020-04-1634-61/+61
| | | | | | | | Use the following variant which was already used by most source files: #ifdef HAVE_CONFIG_H #include "config.h" #endif
* imfs: Replace devfs with an IMFS specializationSebastian Huber2020-03-091-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.
* imfs: Simplify code generationSebastian Huber2020-03-091-11/+17
| | | | Update #3894.
* imfs: Remove unused handlersSebastian Huber2020-03-091-6/+1
| | | | Update #3894.
* imfs: Constify imfs_memfile_bytes_per_blockSebastian Huber2020-03-092-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.
* imfs: Use _IMFS_get_time()Sebastian Huber2020-03-091-6/+5
| | | | Update #3894.
* imfs: Add IMFS_add_node()Sebastian Huber2020-03-043-5/+162
| | | | Update #3894.
* imfs: Simplify IMFS_create_node()Sebastian Huber2020-03-041-3/+4
| | | | Update #3894.
* imfs: Remove IMFS_NODE_FLAG_NAME_ALLOCATEDSebastian Huber2020-03-042-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.
* untar: Unify untar supportSebastian Huber2019-11-251-142/+55
| | | | Update #3823.
* imfs: Fix IMFS_make_linearfile()Sebastian Huber2019-11-211-2/+2
| | | | | | | | Fix prototype. Fix node size. Linfiles are dynamically turned into memfiles. Update #3823.
* imfs: Add IMFS_make_linfile()Sebastian Huber2019-11-194-20/+105
| | | | Update #3818.
* fs: Add struct dirent::d_type supportSebastian Huber2019-02-051-0/+3
|
* Remove make preinstallChris Johns2018-01-251-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.
* IMFS: Include <rtems/imfs.h>Sebastian Huber2017-12-1329-29/+29
| | | | | | Prepare for header file move to common include directory. Update #3254.
* libio: Add rtems_libio_iop_is_append()Sebastian Huber2017-09-151-1/+1
| | | | Update #3132.
* libio: Add rtems_libio_iop_is_writeable()Sebastian Huber2017-09-151-1/+1
| | | | Update #3132.
* libio: Add iop set/clear flagsSebastian Huber2017-09-151-2/+2
| | | | Update #3132.
* Include missing <string.h>Sebastian Huber2017-08-251-0/+2
| | | | Update #2133.
* posix/mmap: Add support for file handler and MAP_ANONKevin Kirspel2017-07-148-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
* Do not include <sys/ioctl.h> in kernel-spaceSebastian Huber2017-06-071-0/+2
| | | | Update #2833.
* imfs: Untangle dependenciesSebastian Huber2016-09-192-89/+115
| | | | | This helps to use IMFS_make_generic_node() without pulling in the complete IMFS implementation.
* imfs: Fix IMFS_stat_file()Sebastian Huber2016-09-162-6/+3
| | | | | Use the adjusted and not the requested memfile bytes per block. Untangle dependencies.
* Filesystem: Remove superfluous permission checksSebastian Huber2016-01-051-15/+1
| | | | The permission is check by the upper layer.
* untar: do not exit with error when created directory already exists.Pavel Pisa2015-11-231-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.
* imfs.h: Add cast to remove warning for pointer/integer size mismatchJoel Sherrill2015-03-241-1/+1
|
* IMFS: NUL-terminate name returned by readdir()Sebastian Huber2015-03-171-2/+5
|
* IMFS: don't strlen() an unterminated string in IMFS_dir_read().Jamie Iles2015-03-161-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.
* IMFS: Fix warningSebastian Huber2015-03-051-1/+1
|
* IMFS: Include missing header fileSebastian Huber2015-03-051-0/+1
|
* IMFS: Fix warningSebastian Huber2015-03-051-1/+1
|
* IMFS: Fix copy on write for linfilesSebastian Huber2015-02-201-0/+3
|
* IMFS: Silence warningSebastian Huber2015-02-181-1/+1
|
* IMFS: Implement variable length node namesSebastian Huber2015-02-155-25/+46
| | | | This reduces the average node size and adds more flexibility.
* IMFS: Add CONFIGURE_IMFS_DISABLE_READDIRSebastian Huber2015-02-146-138/+168
|
* IMFS: Add fine grained configurationSebastian Huber2015-02-126-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.
* IMFS: Allow static initialization of FS infoSebastian Huber2015-02-126-100/+118
|
* IMFS: Fix resource leakSebastian Huber2015-02-121-1/+9
|
* IMFS: Add root directory to FS infoSebastian Huber2015-02-124-88/+69
| | | | Fix memory leak in IMFS_fsunmount().
* IMFS: Simplify IMFS_symlink()Sebastian Huber2015-02-121-26/+7
|
* IMFS: Split linfile and memfile modulesSebastian Huber2015-02-124-165/+133
| | | | Make several functions static.
* IMFS: Introduce IMFS_mknod_controlSebastian Huber2015-02-1216-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.
* Filesystem: Delete unused fsmountme_h handlerSebastian Huber2015-02-093-3/+0
|