summaryrefslogtreecommitdiffstats
path: root/cpukit/sapi (follow)
Commit message (Collapse)AuthorAgeFilesLines
* confdefs: Fix typoSebastian Huber2017-10-061-1/+1
|
* posix: Implement self-contained POSIX mutexSebastian Huber2017-10-052-69/+38
| | | | | | | | 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-052-63/+33
| | | | | | | | 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-052-26/+29
| | | | | | | | 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-052-25/+26
| | | | | | | | POSIX barriers are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3114.
* posix: Implement self-contained POSIX semaphoresSebastian Huber2017-10-051-0/+25
| | | | | | | | | | | | | | For semaphore object pointer and object validation see POSIX_SEMAPHORE_VALIDATE_OBJECT(). Destruction or close of a busy semaphore returns an error status. The object is not flushed. POSIX semaphores are now available in all configurations and no longer depend on --enable-posix. Update #2514. Update #3116.
* confdefs: Fix POSIX keys configurationSebastian Huber2017-08-221-1/+2
| | | | | | | Remove the OBJECTS_UNLIMITED_OBJECTS flag for the memory size configuration. Update #3105.
* INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNITSebastian Huber2017-07-251-2/+3
| | | | | | Add new fatal error INTERNAL_ERROR_ILLEGAL_USE_OF_FLOATING_POINT_UNIT. Update #3077.
* score: Make EDF the default SMP schedulerSebastian Huber2017-07-101-2/+2
| | | | | | | | | | | | | The EDF SMP scheduler supports simple thread processor affinities (see #3059) with a small run-time overhead. The current default SMP scheduler lacks support for thread processor affinities at all. The EDF SMP scheduler offers a good feature set for most applications. So, use it by default. Run-time libraries like libgomp, MTAPI, work stealing schedulers, language interpreters (e.g. Erlang virtual machine), maintainence of per-processor data (e.g. Universal Memory Allocator (UMA)), etc. use a one-to-one thread processor affinity for example. Update #3063.
* score: Add simple affinity support to EDF SMPSebastian Huber2017-07-102-4/+8
| | | | Update #3059.
* score: Add SMP EDF schedulerSebastian Huber2017-06-292-1/+43
| | | | Update #3056.
* confdefs.h: Add SMP enabled field to configurationSebastian Huber2017-05-162-1/+12
| | | | | | | | | | | Do not use the processor count to determine if SMP is enabled. Instead use a dedicated configuration option. Enable SMP by default in SMP configurations. Add CONFIGURE_DISABLE_SMP_CONFIGURATION to all test which would fail otherwise. Update #3001.
* confdefs.h: Fix compile error in non-SMP cfgSebastian Huber2017-05-161-1/+1
| | | | | | Bug introduced by f778b7f3f177a39505aeea61206e95fc54f875be. Update #3001.
* confdefs.h: Use SMP scheduler only if necessarySebastian Huber2017-05-121-1/+1
| | | | Update #3001.
* confdefs.h: CONFIGURE_DISABLE_SMP_CONFIGURATIONSebastian Huber2017-05-111-2/+6
| | | | | | | | | | | Enable the SMP configuration by default in case SMP is enabled. Add configuration option CONFIGURE_DISABLE_SMP_CONFIGURATION to disable it explicitly. Add CONFIGURE_DISABLE_SMP_CONFIGURATION to all test which would fail otherwise. Update #3001.
* posix/mman: add mmap support for shm objectsGedare Bloom2017-05-051-1/+2
| | | | Update #2859.
* sapi: Fix warningsSebastian Huber2017-02-151-1/+1
|
* Rename CONFIGURE_SMP_MAXIMUM_PROCESSORSSebastian Huber2017-02-141-43/+44
| | | | | | | Rename CONFIGURE_SMP_MAXIMUM_PROCESSORS to CONFIGURE_MAXIMUM_PROCESSORS since the SMP part is superfluous. Update #2894.
* Prefix confdefs.h internal def with an underscoreSebastian Huber2017-02-031-455/+352
| | | | Close #2895.
* confdefs.h: SimplifySebastian Huber2017-02-031-3/+1
|
* confdefs.h: Only define _CONFIGURE_SMP_APPLICATION if RTEMS_SMP definedKevin Kirspel2017-02-021-0/+2
|
* Remove CONFIGURE_SMP_APPLICATIONSebastian Huber2017-02-022-28/+18
| | | | | | Enable the SMP support if CONFIGURE_SMP_MAXIMUM_PROCESSORS > 1. Update #2893.
* sapi: Add rtems_task_terminate_extensionSebastian Huber2017-01-261-0/+1
|
* posix: shared memory supportGedare Bloom2017-01-131-0/+39
| | | | | | | | | 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.
* score: Add _Thread_Set_name()Sebastian Huber2017-01-131-0/+18
| | | | | | Add configuration option CONFIGURE_MAXIMUM_THREAD_NAME_SIZE. Update #2858.
* Clarify simple timecounter documentationSebastian Huber2016-12-211-13/+21
|
* Add INTERNAL_ERROR_LIBIO_STDERR_FD_OPEN_FAILEDSebastian Huber2016-12-121-1/+2
| | | | Update #2825.
* Add INTERNAL_ERROR_LIBIO_STDOUT_FD_OPEN_FAILEDSebastian Huber2016-12-121-1/+2
| | | | Update #2825.
* Add INTERNAL_ERROR_LIBIO_SEM_CREATE_FAILEDSebastian Huber2016-12-121-1/+2
| | | | Update #2825.
* INTERNAL_ERROR_LIBIO_USER_ENV_KEY_CREATE_FAILEDSebastian Huber2016-12-121-1/+2
| | | | Update #2825.
* Add INTERNAL_ERROR_POSIX_INIT_THREAD_CREATE_FAILEDSebastian Huber2016-12-121-1/+2
| | | | Update #2825.
* Add INTERNAL_ERROR_RTEMS_INIT_TASK_CREATE_FAILEDSebastian Huber2016-12-121-1/+2
| | | | Update #2825.
* score: Remove fatal is internal indicatorSebastian Huber2016-12-096-46/+14
| | | | | | | | | The fatal is internal indicator is redundant since the fatal source and error code uniquely identify a fatal error. Keep the fatal user extension is internal parameter for backward compatibility and set it to false always. Update #2825.
* score: Simplify linker set APISebastian Huber2016-12-061-8/+3
| | | | | | | | | | | | | | | | | Resurrect RTEMS_LINKER_SET_BEGIN() and RTEMS_LINKER_SET_END(). Add new macros RTEMS_LINKER_SET_ITEM_COUNT(), RTEMS_LINKER_SET_IS_EMPTY(), and RTEMS_LINKER_SET_FOREACH(). Remove confusing RTEMS_LINKER_SET_ASSIGN_BEGIN() and RTEMS_LINKER_SET_ASSIGN_END(). Fix RTEMS_LINKER_SET_SIZE() to return the size in characters as specified by the documentation. Update #2408. Update #2790.
* score: Uncomment unused internal error codesSebastian Huber2016-11-231-3/+3
| | | | Update #2825.
* posix: Add self-contained pthread spinlockSebastian Huber2016-11-231-28/+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: Add thread queue enqueue calloutSebastian Huber2016-11-231-1/+1
| | | | | | | Replace the expected thread dispatch disable level with a thread queue enqueue callout. This enables the use of _Thread_Dispatch_direct() in the thread queue enqueue procedure. This avoids impossible exection paths, e.g. Per_CPU_Control::dispatch_necessary is always true.
* score: Robust thread dispatchSebastian Huber2016-11-231-1/+2
| | | | | | | | | | | | On SMP configurations, it is a fatal error to call blocking operating system with interrupts disabled, since this prevents delivery of inter-processor interrupts. This could lead to executing threads which are not allowed to execute resulting in undefined behaviour. The ARM Cortex-M port has a similar problem, since the interrupt state is not a part of the thread context. Update #2811.
* score: Add and use _Thread_Dispatch_direct()Sebastian Huber2016-11-181-1/+2
| | | | | | | | | | This function is useful for operations which synchronously block, e.g. self restart, self deletion, yield, sleep. It helps to detect if these operations are called in the wrong context. Since the thread dispatch necessary indicator is not used, this is more robust in some SMP situations. Update #2751.
* score: Rename _Scheduler_AssignmentsSebastian Huber2016-11-091-3/+3
| | | | | | | | Rename _Scheduler_Assignments into _Scheduler_Initial_assignments to make it clear that they may not reflect the run-time scheduler assignment. Update #2797.
* score: First part of new MrsP implementationSebastian Huber2016-11-021-1/+2
| | | | Update #2556.
* score: More robust linker setsSebastian Huber2016-10-121-2/+5
| | | | | Update #2408. Update #2790.
* score: Add scheduler node table for each threadSebastian Huber2016-09-211-29/+35
| | | | Update #2556.
* score: Add missing const qualifiersSebastian Huber2016-09-061-4/+4
|
* score: Add debug support to red-black treesSebastian Huber2016-08-081-0/+1
| | | | This helps to detect double insert and extract errors.
* score: Add deadlock detectionSebastian Huber2016-07-271-2/+3
| | | | | | | | | | The mutex objects use the owner field of the thread queues for the mutex owner. Use this and add a deadlock detection to _Thread_queue_Enqueue_critical() for thread queues with an owner. Update #2412. Update #2556. Close #2765.
* score: Add debug support to chainsSebastian Huber2016-07-223-0/+17
| | | | | | | This helps to detect * double insert, append, prepend errors, and * get from empty chain errors.
* score: Move _RBTree_Find()Sebastian Huber2016-06-224-21/+119
| | | | | | The _RBTree_Find() is no longer used in the score. Move it to sapi and make it rtems_rbtree_find(). Move corresponding types and support functions to sapi.
* score: Move _RBTree_Insert()Sebastian Huber2016-06-223-11/+79
| | | | | The _RBTree_Insert() is no longer used in the score. Move it to sapi and make it rtems_rbtree_insert().
* confdefs.h: Do not hide network file systemsSebastian Huber2016-06-091-34/+30
| | | | | Do not hide network file systems if RTEMS_NETWORKING is not defined, since they may be provided by the LibBSD.