summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/sysinit.h (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* score: Fix user extensions orderSebastian Huber2017-01-261-2/+2
| | | | | | | | | | | Use forward and reverse order for initial and dynamic extensions. This is the behaviour documented in the C Users Guide. Change thread terminate order to backward to be in line with the thread delete order. Change fatal error order to forward to ensure that initial extensions are called first due the peculiar execution context of fatal error extensions, see _Terminate() documentation. Update #2692.
* posix: shared memory supportGedare Bloom2017-01-131-0/+1
| | | | | | | | | Add POSIX shared memory manager (Shm). Includes a hook-based approach for the backing memory storage that defaults to the Workspace, and a test is provided using the heap. A test is also provided for the basic use of mmap'ing a shared memory object. This test currently fails at the mmap stage due to no support for mmap.
* 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.
* score: Refine system initialization orderSebastian Huber2016-06-201-3/+13
|
* Use linker set for POSIX User Threads initSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Use linker set for Classic User Tasks initSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Use linker set for MPCI initializationSebastian Huber2016-02-031-2/+5
| | | | Update #2408.
* Use linker set for driver manager initializationSebastian Huber2016-02-031-2/+7
| | | | Update #2408.
* Use linker set for libio initializationSebastian Huber2016-02-031-2/+2
| | | | Update #2408.
* Use linker set for root file system initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional POSIX Keys initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional CPU Set Handler initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional POSIX Spinlock initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional POSIX RWLock initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional POSIX Barrier initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional POSIX Timer initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional POSIX Semaphore initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional POSIX Message Queue initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional POSIX Mutex initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional POSIX Condition Variable initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional POSIX Cleanup initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional POSIX Threads initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional POSIX Signals initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional Classic Barrier initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional Classic Rate Monotonic initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional Classic Dual-Ported Memory initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional Classic Region initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional Classic Partition initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional Classic Semaphore initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional Classic Message Queue initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional Classic Event initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional Classic Signal initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional Classic Timer initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional Classic Tasks initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional Extensions initializationSebastian Huber2016-02-031-0/+1
| | | | Update #2408.
* Optional Initial Extensions initializationSebastian Huber2016-02-031-1/+2
| | | | Update #2408.
* score: Create idle threads via linker setSebastian Huber2016-02-031-0/+1
| | | | | | This allows a more fine grained rtems_initialize_data_structures(). Update #2408.
* Use linker set for system initializationSebastian Huber2015-12-111-0/+75
Make rtems_initialize_data_structures(), rtems_initialize_before_drivers() and rtems_initialize_device_drivers() static. Rename rtems_initialize_start_multitasking() to rtems_initialize_executive() and call the registered system initialization handlers in this function. Add system initialization API available via #include <rtems/sysinit.h>. Update the documentation accordingly. This is no functional change, only the method to call the existing initialization routines changes. Instead of direct function calls a table of function pointers contained in the new RTEMS system initialization linker set is used. This table looks like this (the actual addresses depend on the target). nm *.exe | grep _Linker | sort 0201a2d0 D _Linker_set__Sysinit_begin 0201a2d0 D _Linker_set__Sysinit_bsp_work_area_initialize 0201a2d4 D _Linker_set__Sysinit_bsp_start 0201a2d8 D _Linker_set__Sysinit_rtems_initialize_data_structures 0201a2dc D _Linker_set__Sysinit_bsp_libc_init 0201a2e0 D _Linker_set__Sysinit_rtems_initialize_before_drivers 0201a2e4 D _Linker_set__Sysinit_bsp_predriver_hook 0201a2e8 D _Linker_set__Sysinit_rtems_initialize_device_drivers 0201a2ec D _Linker_set__Sysinit_bsp_postdriver_hook 0201a2f0 D _Linker_set__Sysinit_end Add test sptests/spsysinit01. Update #2408.