summaryrefslogtreecommitdiffstats
path: root/cpukit/include/rtems/libio_.h (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-05-20Update company nameSebastian Huber1-1/+1
The embedded brains GmbH & Co. KG is the legal successor of embedded brains GmbH.
2021-05-28libcsupport: Added futimens() and utimensat()Ryan Long1-8/+86
Created futimens.c and utimensat.c to add support for the POSIX methods futimens() and utimensat(). utime() and utimes() are considered obsolote by POSIX, but RTEMS will continue to support them. Closes #4396
2020-03-13libio: Robust file descriptor reference countingSebastian Huber1-23/+1
There was a race conditon in the reference counting of file descriptors during a close() operation. After the call to the close handler, the rtems_libio_free() function cleared the flags to zero. However, at this point in time there may still exist some holders of the file descriptor. With RTEMS_DEBUG enabled this could lead to failed assertions in rtems_libio_iop_drop(). Change the code to use only atomic read-modify-write operations on the rtems_libio_iop::flags.
2020-03-09libio: Constify some functionsSebastian Huber1-4/+4
2020-02-25libio: Add POSIX user environment pointer to TCBSebastian Huber1-4/+0
The IO library used a POSIX key to store an optional POSIX user environment pointer. This pulled in the POSIX keys support in every application configuration. Add a user environment pointer to the thread control block (TCB) instead. Applications which do not need the POSIX user environment will just get an overhead of one pointer per thread. Close #3882.
2019-04-04doxygen: Added some subgroups to IO LibraryAndreas Dachsberger1-0/+2
Update #3706. Types and Mount, IO Internal, Kernel Print Support
2018-01-25Remove make preinstallChris Johns1-0/+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-06libio: Use API mutexSebastian Huber1-17/+2
2017-11-15libio: Add assert to rtems_libio_iop_drop()Sebastian Huber1-0/+23
This assert helps to detect an invalid reference counting in RTEMS_DEBUG configurations. Update #3132.
2017-09-15libio: Use FIFO for iop free listSebastian Huber1-1/+2
Update #3136.
2017-09-15libio: Add hold/drop iop referenceSebastian Huber1-23/+52
Check iop reference count in close() and return -1 with errno set to EBUSY in case the file descriptor is still in use. Update #3132.
2017-09-15libio: Unify readv() and writev()Sebastian Huber1-6/+16
Update #3132.
2017-09-15libio: LIBIO_GET_IOP() LIBIO_GET_IOP_WITH_ACCESS()Sebastian Huber1-34/+44
Replace rtems_libio_check_fd(), rtems_libio_iop(), rtems_libio_check_open() and rtems_libio_check_permissions() combinations with new LIBIO_GET_IOP() and LIBIO_GET_IOP_WITH_ACCESS() macros. Update #3132.
2017-09-15libio: Add rtems_libio_iop_flags_initialize()Sebastian Huber1-0/+18
Update #3132.
2017-09-15libio: Add iop set/clear flagsSebastian Huber1-0/+40
Update #3132.
2017-09-15libio: rtems_libio_check_permissions_with_error()Sebastian Huber1-3/+3
Rename rtems_libio_check_permissions_with_error() in rtems_libio_check_permissions(). Update #3132.
2017-09-15libio: Remove rtems_libio_check_permissions()Sebastian Huber1-10/+0
Remove rtems_libio_check_permissions() and convert single user to rtems_libio_check_permissions_with_error(). Update #3132.
2017-09-15libio: Do simple parameter checks earlySebastian Huber1-7/+7
This simplifies error handling later. Update #3132.
2017-09-14libio: Simplify rtems_libio_iop()Sebastian Huber1-7/+13
Remove the file descriptor validation. This is the job of rtems_libio_check_fd(). Use an inline function instread of a macro. Update #3132.
2017-09-14libio: Remove special-case reference countSebastian Huber1-41/+0
The top-level IO library structures should contain no special-case data. Update #2859.
2017-05-05posix/mman: add mmap support for shm objectsGedare Bloom1-0/+41
Update #2859.
2017-03-16libio: Fix deadlock in location managementSebastian Huber1-1/+4
Perform a context-dependent deferred location release to avoid a deadlock on the file system instance locks, for example during a chdir(). Update #2936.
2016-02-02Filesystem: Export most generic path eval functionSebastian Huber1-0/+1
Add path length parameter to rtems_filesystem_eval_path_start_with_root_and_current() so that users may pass paths without a '\0' termination. Update #2558.
2015-02-04Filesystem: Statically initialize rtems_libio_iopsSebastian Huber1-1/+1
2015-02-04Filesystem: Use rtems_libio_iop_to_descriptor()Sebastian Huber1-1/+1
Drop parameter check from previously unused rtems_libio_iop_to_descriptor().
2015-02-04Filesystem: Delete rtems_libio_last_iopSebastian Huber1-1/+0
2015-02-04Filesystem: Make rtems_libio_number_iops constSebastian Huber1-1/+1
2015-01-22Filesystem: Delete node type operationSebastian Huber1-15/+20
Use the fstat handler instead.
2014-11-20Add supplementary groups to user environmentSebastian Huber1-4/+23
2014-11-20Filesystem: TypoSebastian Huber1-1/+1
2014-03-27privateenv: Use POSIX keys instead of task variables.Christian Mauderer1-0/+5
2014-03-21Change all references of rtems.com to rtems.org.Chris Johns1-1/+1
2014-03-11score: Add local context to SMP lock APISebastian Huber1-3/+3
Add a local context structure to the SMP lock API for acquire and release pairs. This context can be used to store the ISR level and profiling information. It may be later used to enable more sophisticated lock algorithms, e.g. MCS locks. There is only one lock that cannot be used with a local context. This is the per-CPU lock since here we would have to transfer the local context through a context switch which is very complicated.
2013-12-20libcsupport: Accept NULL for zero-length entriesSebastian Huber1-1/+1
2013-12-20libcsupport: Add and use rtems_libio_iovec_eval()Sebastian Huber1-0/+56
2013-12-10PR2158: Add support for dup2.Chris Johns1-0/+7
Split the dub call into dup and dup2 in fcntl.c. This requires a private command which is placed in the internal libio header.
2013-09-12Filesystem: Change rtems_filesystem_chown()Sebastian Huber1-3/+2
Implement POSIX requirements in the high-level file system layer. Use common implementation for all change owner variants.
2013-09-12Filesystem: Add and use rtems_filesystem_chmod()Sebastian Huber1-0/+5
Implement POSIX requirements in the high-level file system layer.
2013-08-14filesystem: Add SMP supportSebastian Huber1-2/+6
2013-01-10cpukit: Use Consistent Beginning of Doxygen Group NotationJoel Sherrill1-1/+1
This is the result of a sed script which converts all uses of @{ into a consistent form.
2013-01-09libcsupport: DocumentationSebastian Huber1-35/+22
2013-01-08libcsupport: Doxygen Clean Up Task #1Alex Ivanov1-36/+38
2012-12-28Header File Doxygen Enhancement Task #1Alex Ivanov1-1/+3
2012-12-15libcsupport: Doxygen Enhancement Task #8Alex Ivanov1-0/+14
http://www.google-melange.com/gci/task/view/google/gci2012/7996208
2012-12-14Fix spellingSebastian Huber1-1/+1
2012-12-14Filesystem: Revert documentation changesSebastian Huber1-5/+5
2012-12-13libcsupport: Doxygen enhancement task #9Alex Ivanov1-5/+5
2012-12-13libcsupport: Revert documentation changesSebastian Huber1-9/+9
2012-12-11libcsupport: Doxygen enhancement GCI task #4Alex Ivanov1-5/+8
http://www.google-melange.com/gci/task/view/google/gci2012/8009205
2012-12-11libcsupport: GCI Doxygen Task #7Alex Ivanov1-7/+7
http://www.google-melange.com/gci/task/view/google/gci2012/7975223