| Commit message (Collapse) | Author | Files | Lines |
|
Make several functions static.
|
|
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.
|
|
|
|
The type of ino_t is unsigned long, so it can store a pointer. Avoid a
potential integer overflow.
|
|
|
|
Provide only types used by IMFS_mknod().
|
|
|
|
This reduces the average node size.
Add and use IMFS_GENERIC_INITIALIZER().
|
|
Use the fstat handler instead.
|
|
|
|
CodeSonar flagged this as a possible dereference of a NULL pointer.
This should never occur so adding _Assert().
|
|
Include <sys/param.h> if necessary to get the MIN()/MAX() macros.
|
|
|
|
|
|
The rtems_filesystem_location_info_t::node_access_2 was unused by the
IMFS. Use it to hold the context of generic nodes. This makes it
possible to use node handlers for objects with and without a
corresponding file system node.
For example network sockets created with socket() have only a file
descriptor, but no corresponding file system node. The UNIX(4) domain
sockets can be bound to file system nodes. In both cases the
rtems_filesystem_location_info_t must provide a pointer to the socket
structure used by the socket node handlers. With the context pointer
(for sockets, this is the socket structure) in
rtems_filesystem_location_info_t::node_access_2 the same node handlers
can be used in both cases.
|
|
|
|
|
|
The readv() and writev() support was implemented in terms of multiple
calls to the read and write handlers. This imposes a problem on device
files which use an IO vector as single request entity. For example a
low-level network device (e.g. BPF(4)) may use an IO vector to create
one frame from multiple protocol layers each with its own IO vector
entry.
|
|
Return an error status with errno set to ENOSYS during node creation for
nodes not available in the current configuration.
|
|
The FIFO was incorrectly set to the default control block.
|
|
|
|
ftruncate() and open() with O_TRUNC shall upon successful completion
mark for update the st_ctime and st_mtime fields of the file.
truncate() shall upon successful completion, if the file size is
changed, mark for update the st_ctime and st_mtime fields of the file.
The POSIX standard "The Open Group Base Specifications Issue 7", IEEE
Std 1003.1, 2013 Edition says nothing about the behaviour of truncate()
if the file size remains unchanged.
Future directions of the standard may mandate the behaviour specified in
ftruncate():
http://austingroupbugs.net/view.php?id=489
|
|
|
|
Implement POSIX requirements in the high-level file system layer.
|
|
Replace strcpy and strcat with counted variants.
|
|
|
|
Free fs_info in case root_node is NULL.
|
|
|
|
|
|
The two functions are independent of the POSIX API.
|
|
|
|
|
|
The output of the modules.html is much improved. Most
filesystem and POSIX API related groups are properly nested.
Some formatting issues were addressed as were multiple
inconsistencies.
|
|
|
|
http://www.google-melange.com/gci/task/view/google/gci2012/8120204
Patch committed with fixes for whitespace issues.
|
|
|
|
|
|
|
|
http://www.google-melange.com/gci/task/view/google/gci2012/8032207
|
|
Reject the removal of file system instance root nodes in rmdir() and
unlink() and return the EBUSY error status. File system instances can
be removed with unmount(). Remove root node special cases in IMFS,
DOSFS, and RFS.
|
|
|
|
The pathconf_limits_and_options field of
rtems_filesystem_mount_table_entry_t is now a const pointer to reduce
the read-write memory demands of file system instances.
|
|
The scope of the file system operations is the file system instance.
The scope of the file system node handlers is the file location. The
benefit of moving the operations to the mount table entry is a size
reduction of the file location (rtems_filesystem_location_info_t). The
code size is slightly increased due to additional load instructions.
Restructure rtems_filesystem_mount_table_entry_t to improve cache
efficiency.
|
|
It is now the responsibility of the read() and write() handler to update
the offset field of the IO descriptor (rtems_libio_t). This change
makes it possible to protect the IO descriptor from concurrent access by
per file locks.
|
|
The device IO file system support in IMFS, devFS, and RFS uses now a
shared implementation.
|
|
|
|
Script does what is expected and tries to do it as
smartly as possible.
+ remove occurrences of two blank comment lines
next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
contain CVS Ids
+ If the processing left a blank line at the top of
a file, it was removed.
|
|
Space that grows due to truncate or write offsets beyond the current
file size must be zero filled.
|
|
|
|
According to POSIX the lseek() function shall not, by itself, extend the
size of a file.
Remove the size field of rtems_libio_t. A file has only one size but
may have multiple open file descriptors. Thus a file size field in the
file descriptor may lead to inconsistencies.
New default handlers rtems_filesystem_default_lseek_file() and
rtems_filesystem_default_lseek_directory().
|