summaryrefslogtreecommitdiffstats
path: root/cpukit/libcsupport/include/rtems (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Remove make preinstallChris Johns2018-01-2510-4589/+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.
* libio: Use API mutexSebastian Huber2017-12-061-17/+2
|
* sapi: New implementation of rtems_panic()Sebastian Huber2017-11-221-9/+1
| | | | | | | | | | | | The previous rtems_panic() implementation was quite heavy weight. It depended on _exit() which calls the global destructors. It used fprintf(stderr, ...) for output which depends on an initialized console device and the complex fprintf(). Introduce a new fatal source RTEMS_FATAL_SOURCE_PANIC for rtems_panic() and output via vprintk(). Update #3244.
* libio: Add assert to rtems_libio_iop_drop()Sebastian Huber2017-11-151-0/+23
| | | | | | | This assert helps to detect an invalid reference counting in RTEMS_DEBUG configurations. Update #3132.
* posix: Implement self-contained POSIX mutexSebastian Huber2017-10-051-1/+0
| | | | | | | | POSIX mutexes are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3112.
* posix: Implement self-contained POSIX condvarSebastian Huber2017-10-051-1/+0
| | | | | | | | POSIX condition variables are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3113.
* posix: Implement self-contained POSIX rwlocksSebastian Huber2017-10-051-1/+0
| | | | | | | | POSIX rwlocks are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3115.
* posix: Implement self-contained POSIX barriersSebastian Huber2017-10-051-1/+0
| | | | | | | | POSIX barriers are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3114.
* libio: Remove rtems_libio_t::driverSebastian Huber2017-09-151-1/+0
| | | | | | This member was apparently unused. Close #3133.
* libio: Use FIFO for iop free listSebastian Huber2017-09-151-1/+2
| | | | Update #3136.
* libio: Add hold/drop iop referenceSebastian Huber2017-09-152-26/+57
| | | | | | | 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.
* libio: Unify readv() and writev()Sebastian Huber2017-09-151-6/+16
| | | | Update #3132.
* libio: LIBIO_GET_IOP() LIBIO_GET_IOP_WITH_ACCESS()Sebastian Huber2017-09-151-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.
* libio: Add rtems_libio_iop_is_append()Sebastian Huber2017-09-151-0/+10
| | | | Update #3132.
* libio: Add rtems_libio_iop_is_writeable()Sebastian Huber2017-09-151-0/+10
| | | | Update #3132.
* libio: Add rtems_libio_iop_is_readable()Sebastian Huber2017-09-151-0/+10
| | | | Update #3132.
* libio: Add rtems_libio_iop_is_no_delay()Sebastian Huber2017-09-151-0/+10
| | | | Update #3132.
* libio: Add rtems_libio_iop_flags()Sebastian Huber2017-09-151-0/+5
| | | | Update #3132.
* libio: Add rtems_libio_iop_flags_initialize()Sebastian Huber2017-09-151-0/+18
| | | | Update #3132.
* libio: Add iop set/clear flagsSebastian Huber2017-09-151-0/+40
| | | | Update #3132.
* libio: rtems_libio_check_permissions_with_error()Sebastian Huber2017-09-151-3/+3
| | | | | | | Rename rtems_libio_check_permissions_with_error() in rtems_libio_check_permissions(). Update #3132.
* libio: Remove rtems_libio_check_permissions()Sebastian Huber2017-09-151-10/+0
| | | | | | | Remove rtems_libio_check_permissions() and convert single user to rtems_libio_check_permissions_with_error(). Update #3132.
* libio: Do simple parameter checks earlySebastian Huber2017-09-151-7/+7
| | | | | | This simplifies error handling later. Update #3132.
* libio: Simplify rtems_libio_iop()Sebastian Huber2017-09-141-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.
* libio: Remove LIBIO_FLAGS_CREATESebastian Huber2017-09-141-1/+0
| | | | Close #3134.
* libio: Remove special-case reference countSebastian Huber2017-09-142-42/+0
| | | | | | The top-level IO library structures should contain no special-case data. Update #2859.
* posix/mmap: Add support for file handler and MAP_ANONKevin Kirspel2017-07-142-0/+51
| | | | | | | | | | | 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-1/+1
| | | | Update #2833.
* Move RTEMS-specific Termios API contentSebastian Huber2017-06-071-0/+9
| | | | | | | Remove obsolete support for OFILL, OFDEL, NLDLY, CRDLY, BSDLY, VTDLY, and FFDLY which is not present on FreeBSD and not implemented in Linux. Update #2833.
* posix/mman: add mmap support for shm objectsGedare Bloom2017-05-052-0/+42
| | | | Update #2859.
* bsps: Fix baud settingsSebastian Huber2017-04-031-4/+2
| | | | Update #2897.
* termios: Synchronize with latest FreeBSD headersKevin Kirspel2017-03-221-4/+4
| | | | | | | | | | | Adding modified FreeBSD headers to synchronize RTEMS termios with FreeBSD. Modify termios to support dedicated input and output baud for termios structure. Updated BSPs to use dedicated input and output baud in termios structure. Updated tools to use dedicated input and output baud in termios structure. Updated termios testsuites to use dedicated input and output baud in termios structure. Close #2897.
* libio: Fix deadlock in location managementSebastian Huber2017-03-161-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.
* termios: Change tty_rcvwakeup to boolSebastian Huber2017-02-281-1/+1
| | | | Optimize callout invocation check.
* termios: Add kqueue() and poll() supportSebastian Huber2017-02-231-0/+20
| | | | Real implementation is provided by libbsd.
* termios: Fix static device initalizationSebastian Huber2017-02-031-1/+17
| | | | | | This enables early printk() support. Update #2838.
* Fix documentation commentSebastian Huber2017-01-121-4/+4
|
* Add and use rtems_assoc_thread_states_to_string()Sebastian Huber2017-01-121-0/+16
|
* Add rtems_assoc_32_to_string()Sebastian Huber2017-01-121-1/+32
|
* termios: Add TERMIOS_IRQ_SERVER_DRIVENAlexander Krutwig2016-12-161-4/+6
| | | | | | | | | | Add a new interrupt server driven Termios mode (TERMIOS_IRQ_DRIVEN). This mode is identical to the interrupt driven mode except that a mutex is used for device level locking. The intended use case for this mode are device drivers that use the interrupt server, e.g. SPI or I2C connected devices. Update #2839.
* termios: Use mutex for task driven modeSebastian Huber2016-12-161-5/+21
| | | | | | | | | | Termios has a task driven mode (TERMIOS_TASK_DRIVEN). This mode aims to avoid long sections with disabled interrupts. This is only partly implemented since the device level state is still protected by disabled interrupts. Use a mutex to protect the device level state in task driven mode to fix this issue. Update #2838.
* posix: Add self-contained pthread spinlockSebastian Huber2016-11-231-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Turn pthread_spinlock_t into a self-contained object. On uni-processor configurations, interrupts are disabled in the lock/trylock operations and the previous interrupt status is restored in the corresponding unlock operations. On SMP configurations, a ticket lock is a acquired and released in addition. The self-contained pthread_spinlock_t object is defined by Newlib in <sys/_pthreadtypes.h>. typedef struct { struct _Ticket_lock_Control _lock; __uint32_t _interrupt_state; } pthread_spinlock_t; This implementation is simple and efficient. However, this test case of the Linux Test Project would fail due to call of printf() and sleep() during spin lock ownership: https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/1-2.c There is only limited support for profiling on SMP configurations. Delete CORE spinlock implementation. Update #2674.
* termios: Add IO control handlerSebastian Huber2016-09-191-0/+15
| | | | Update #2785.
* termios: Use IMFS nodes for new Termios devicesSebastian Huber2016-09-191-52/+4
| | | | | | | | This makes the new Termios devices independent of device major/minor numbers. It enables BSP independent Termios device drivers which may reside in the cpukit domain. These drivers require an IMFS and do not work with the device file system. However, the device file system should go away in the future.
* posix: Simplify message queuesSebastian Huber2016-05-021-1/+0
| | | | | | | | | | | | The mq_open() function returns a descriptor to a POSIX message queue object identified by a name. This is similar to sem_open(). In contrast to the POSIX semaphore the POSIX message queues use a separate object for the descriptor. This extra object is superfluous, since the object identifier can be used directly for this purpose, just like for the semaphores. Update #2702. Update #2555.
* Move various driver interface definition headers file libcsupport/ to include/Joel Sherrill2016-03-302-239/+0
| | | | | | | | | | | These were in libcsupport for historical reasons and the placement no longer made sense. As part of this move, some of the files were placed under subdirectories which reflect their installed location. Thank you git for allowing us to move files. Years of CVS resulted in files being somewhere they no longer belonged.
* Use linker set for libio initializationSebastian Huber2016-02-031-15/+0
| | | | Update #2408.
* Use atexit() handler to close std file descriptorsSebastian Huber2016-02-031-2/+0
|
* Use linker set for root file system initializationSebastian Huber2016-02-031-2/+0
| | | | Update #2408.
* Filesystem: Export most generic path eval functionSebastian Huber2016-02-021-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.