summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/include/rtems (follow)
Commit message (Collapse)AuthorAgeFilesLines
* posix: Make _POSIX_signals_Action_handler() staticSebastian Huber2016-05-121-7/+0
|
* score: Optimize _Objects_Get_local()Sebastian Huber2016-05-025-22/+9
| | | | | Make the interrupt lock context the second parameter to avoid register moves.
* posix: Simplify message queuesSebastian Huber2016-05-023-90/+17
| | | | | | | | | | | | 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.
* posix: Delete POSIX_Message_queue_Control::namedSebastian Huber2016-05-021-1/+0
| | | | Delete unused POSIX_Message_queue_Control::named.
* posix: POSIX_Message_queue_Control::process_sharedSebastian Huber2016-05-021-1/+0
| | | | Delete unused POSIX_Message_queue_Control::process_shared.
* posix: _POSIX_Message_queue_Create_support()Sebastian Huber2016-05-021-14/+0
| | | | | Make _POSIX_Message_queue_Create_support() static since it is only used by mq_open().
* posix: Avoid Giant lock for condition variablesSebastian Huber2016-04-273-18/+47
| | | | Update #2555.
* score: Avoid Giant lock for CORE rwlockSebastian Huber2016-04-221-2/+3
| | | | Update #2555.
* score: Avoid Giant lock for barriersSebastian Huber2016-04-221-17/+7
| | | | | | Use _Thread_queue_Flush_critical() to atomically release the barrier. Update #2555.
* posix: Use _Objects_Get_local() for semaphoresSebastian Huber2016-04-221-7/+4
| | | | | This simplifies the code since the object location is no longer used. Remove superfluous header includes.
* score: Avoid Giant lock for CORE mtx/semSebastian Huber2016-04-221-23/+3
| | | | | | | Avoid Giant lock for CORE mutex and semaphore flush and delete operations. Update #2555.
* score: Optimize _Objects_Get_local()Sebastian Huber2016-04-212-2/+2
| | | | | Make the id the first parameter since usual callers get the object identifier as the first parameter themself.
* score: Optimize _Objects_Get_no_protection()Sebastian Huber2016-04-211-1/+1
| | | | | Make the id the first parameter since usual callers get the object identifier as the first parameter themself.
* posix: Avoid Giant lock for mutexesSebastian Huber2016-04-211-14/+0
| | | | | | | Delete _POSIX_Mutex_Get(). Use _POSIX_Mutex_Get_interrupt_disable() instead. Update #2555.
* posix: Simplify _POSIX_Mutex_Get_interrupt_disableSebastian Huber2016-04-211-7/+7
| | | | Remove superfluous location parameter.
* score: Fix _CORE_semaphore_Flush()Sebastian Huber2016-04-211-1/+0
| | | | | | | Use proper CORE_semaphore_Status for _CORE_semaphore_Flush() and _CORE_semaphore_Destroy() operations. Close #2696.
* posix: Rename killinfo()Sebastian Huber2016-04-121-1/+1
| | | | | | Apparently killinfo() is not defined by POSIX, glibc or FreeBSD. Rename killinfo() to _POSIX_signals_Send() to cleary mark it as an internal function.
* score: Simplify _Objects_Get_no_protection()Sebastian Huber2016-04-121-7/+2
| | | | | | | This functions supports only local objects. Thus, drop the location parameter which was unused by all callers. Remove superfluous includes from Classic Region implementation.
* posix: Use a dedicated lock for scheduler changesSebastian Huber2016-04-122-0/+20
| | | | Update #2555.
* score: Add node map to _RBTree_Find_inline()Sebastian Huber2016-04-061-4/+10
|
* posix: Make _POSIX_signals_Check_signal() staticSebastian Huber2016-04-061-9/+0
|
* score: Rework MP thread queue callout supportSebastian Huber2016-04-061-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The thread queue implementation was heavily reworked to support SMP. This broke the multiprocessing support of the thread queues. This is fixed by this patch. A thread proxy is unblocked due to three reasons 1) timeout, 2) request satisfaction, and 3) extraction. In case 1) no MPCI message must be sent. This is ensured via the _Thread_queue_MP_callout_do_nothing() callout set during _Thread_MP_Allocate_proxy(). In case 2) and 3) an MPCI message must be sent. In case we interrupt the blocking operation during _Thread_queue_Enqueue_critical(), then this message must be sent by the blocking thread. For this the new fields Thread_Proxy_control::thread_queue_callout and Thread_Proxy_control::thread_queue_id are used. Delete the individual API MP callout types and use Thread_queue_MP_callout throughout. This type is only defined in multiprocessing configurations. Prefix the multiprocessing parameters with mp_ to ease code review. Multiprocessing specific parameters are optional due to use of a similar macro pattern. There is no overhead for non-multiprocessing configurations.
* score: Delete Thread_Wait_information::idSebastian Huber2016-04-064-4/+4
| | | | | | | | | | | This field was only by the monitor in non-multiprocessing configurations. Add new field Thread_Wait_information::remote_id in multiprocessing configurations and use it for the remote procedure call thread queue. Add _Thread_Wait_get_id() to obtain the object identifier for debug and system information tools. Ensure the object layout via static asserts. Add test cases to sptests/spthreadq01.
* score: Add and use _RBTree_Insert_inline()Sebastian Huber2016-04-011-22/+4
|
* score: Add and use _RBTree_Find_inline()Sebastian Huber2016-04-011-22/+32
|
* score: Remove Thread_queue_Queue::operations fieldSebastian Huber2016-03-293-0/+16
| | | | | | | | | Remove the Thread_queue_Queue::operations field to reduce the size of this structure. Add a thread queue operations parameter to the _Thread_queue_First(), _Thread_queue_First_locked(), _Thread_queue_Enqueue(), _Thread_queue_Dequeue() and _Thread_queue_Flush() functions. This is a preparation patch to reduce the size of several synchronization objects.
* score: Avoid Giant lock for CORE spinlockSebastian Huber2016-03-181-17/+10
| | | | | | Use an ISR lock to protect the spinlock state. Remove empty attributes. Update #2555.
* score: Add _Objects_Get_by_name()Sebastian Huber2016-03-183-39/+33
| | | | | | | | | | Replace _Objects_Name_to_id_string() with _Objects_Get_by_name() since all users of this function are interested in the object itself and not the identifier. Use the object allocator lock to protect the search. Update #2555.
* posix: Use per-thread lookup tree for POSIX KeysSebastian Huber2016-03-182-88/+94
| | | | | | Yields higher performance on SMP systems. Close #2625.
* score: Add and use _Objects_Get_local()Sebastian Huber2016-03-141-3/+1
| | | | | | This simplifies the handling with local-only objects. Update #2555.
* score: Replace watchdog handler implementationSebastian Huber2016-03-043-25/+36
| | | | | | | | | Use a red-black tree instead of delta chains. Close #2344. Update #2554. Update #2555. Close #2606.
* Delete unused API extensionsSebastian Huber2016-02-031-1/+0
|
* Use linker set for POSIX User Threads initSebastian Huber2016-02-031-9/+0
| | | | Update #2408.
* posix: Delete empty _POSIX_API_Initialize()Sebastian Huber2016-02-031-8/+0
|
* Optional POSIX Keys initializationSebastian Huber2016-02-031-25/+2
| | | | Update #2408.
* Optional POSIX Spinlock initializationSebastian Huber2016-02-031-9/+1
| | | | Update #2408.
* Optional POSIX RWLock initializationSebastian Huber2016-02-031-9/+1
| | | | Update #2408.
* Optional POSIX Barrier initializationSebastian Huber2016-02-031-9/+1
| | | | Update #2408.
* Optional POSIX Timer initializationSebastian Huber2016-02-032-15/+1
| | | | Update #2408.
* Optional POSIX Semaphore initializationSebastian Huber2016-02-031-8/+1
| | | | Update #2408.
* Optional POSIX Message Queue initializationSebastian Huber2016-02-031-21/+2
| | | | Update #2408.
* Optional POSIX Mutex initializationSebastian Huber2016-02-031-9/+2
| | | | Update #2408.
* Optional POSIX Condition Variable initializationSebastian Huber2016-02-031-8/+1
| | | | Update #2408.
* Optional POSIX Cleanup initializationSebastian Huber2016-02-032-17/+0
| | | | Update #2408.
* Optional POSIX Threads initializationSebastian Huber2016-02-031-8/+1
| | | | Update #2408.
* Optional POSIX Signals initializationSebastian Huber2016-02-031-5/+0
| | | | Update #2408.
* posix: Store unblocked signalsSebastian Huber2015-12-151-2/+2
| | | | | Store the unblock signals to exploit the zero-initialization of the thread control block.
* posix: Require struct _pthread_cleanup_contextSebastian Huber2015-11-242-20/+0
| | | | | This structure is available in Newlib since 2013-11-29 (Git commit a534dfd26e765047621acd0eda656ded886e7108).
* various .h files: Add missing C++ extern wrappersMartin Galvan2015-09-031-1/+4
| | | | Updates #2405.
* score: Rename _POSIX_Absolute_timeout_to_ticks()Sebastian Huber2015-07-281-72/+0
| | | | | | Rename _POSIX_Absolute_timeout_to_ticks() to _TOD_Absolute_timeout_to_ticks() and move it to the score directory. Delete empty <rtems/posix/time.h>.