summaryrefslogtreecommitdiffstats
path: root/cpukit/score (follow)
Commit message (Collapse)AuthorAgeFilesLines
* posix: Avoid Giant lock for condition variablesSebastian Huber2016-04-271-0/+8
| | | | Update #2555.
* powerpc: Add FSL_EIS_TENSR, etc. definesSebastian Huber2016-04-221-0/+7
|
* score: Avoid Giant lock for CORE rwlockSebastian Huber2016-04-224-154/+190
| | | | Update #2555.
* score: Avoid Giant lock for barriersSebastian Huber2016-04-223-83/+106
| | | | | | Use _Thread_queue_Flush_critical() to atomically release the barrier. Update #2555.
* score: Add _Thread_queue_Flush_default_filter()Sebastian Huber2016-04-222-0/+26
|
* score: Use _Thread_queue_Flush_critical() for condSebastian Huber2016-04-221-67/+41
|
* score: Use _Thread_queue_Flush_critical for futexSebastian Huber2016-04-221-70/+28
|
* score: Add _Thread_queue_Is_empty()Sebastian Huber2016-04-221-0/+7
|
* score: Avoid Giant lock for CORE mtx/semSebastian Huber2016-04-223-45/+68
| | | | | | | Avoid Giant lock for CORE mutex and semaphore flush and delete operations. Update #2555.
* score: Rename _CORE_RWLock_Obtain()Sebastian Huber2016-04-214-6/+6
| | | | | | | | Rename _CORE_RWLock_Obtain_for_reading() into _CORE_RWLock_Seize_for_reading(). Rename _CORE_RWLock_Obtain_for_writing() into _CORE_RWLock_Seize_for_writing(). Rename _CORE_RWLock_Release() into _CORE_RWLock_Surrender(). This avoids confusion with the ISR lock acquire and release.
* score: Rename _CORE_barrier_Wait()Sebastian Huber2016-04-213-13/+13
| | | | | | Rename _CORE_barrier_Wait() into _CORE_barrier_Seize(). Rename _CORE_barrier_Release() into _CORE_barrier_Surrender(). This avoids confusion with the ISR lock acquire and release.
* score: Rename _MRSP_Obtain()Sebastian Huber2016-04-211-2/+2
| | | | | | Rename _MRSP_Obtain() into _MRSP_Seize(). Rename _MRSP_Release() into _MRSP_Surrender(). This avoids confusion with the ISR lock acquire and release.
* score: Optimize _Objects_Get_local()Sebastian Huber2016-04-212-4/+5
| | | | | 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-213-6/+8
| | | | | Make the id the first parameter since usual callers get the object identifier as the first parameter themself.
* score: Simplify _Objects_Get_next()Sebastian Huber2016-04-212-17/+10
| | | | Remove unused location parameter.
* score: Simplify _Objects_Initialize_information()Sebastian Huber2016-04-215-37/+60
| | | | | | Remove unused supports_global parameter. Convert _Objects_Initialize_information() to a macro to avoid use of RTEMS_MULTIPROCESSING define for each caller.
* score: Introduce _Thread_queue_Flush_critical()Sebastian Huber2016-04-2110-84/+288
| | | | | | | | Replace _Thread_queue_Flush() with _Thread_queue_Flush_critical() and add a filter function for customization of the thread queue flush operation. Update #2555.
* score: Add and use _CORE_mutex_Acquire_critical()Sebastian Huber2016-04-211-8/+24
| | | | Add and use _CORE_mutex_Release().
* score: Remove id parameter _CORE_mutex_Seize()Sebastian Huber2016-04-213-9/+2
| | | | Parameter was unused.
* score: Close semaphore object before flushSebastian Huber2016-04-211-3/+6
| | | | | This prevents use of the object after the flush on uni-processor configurations.
* score: Fix _CORE_semaphore_Flush()Sebastian Huber2016-04-211-8/+16
| | | | | | | Use proper CORE_semaphore_Status for _CORE_semaphore_Flush() and _CORE_semaphore_Destroy() operations. Close #2696.
* score: Simplify _CORE_barrier_Flush()Sebastian Huber2016-04-211-2/+1
|
* score: Simplify _CORE_message_queue_Close()Sebastian Huber2016-04-212-12/+4
| | | | | | | Drop status parameter since each caller used CORE_MESSAGE_QUEUE_STATUS_WAS_DELETED. Remove superfluous _CORE_message_queue_Flush().
* score: Simplify _CORE_message_queue_Do_close()Sebastian Huber2016-04-211-11/+0
| | | | | Remove superfluous _CORE_message_queue_Flush() since we completely re-initialize the structure in _CORE_message_queue_Initialize().
* score: Delete unused CORE_RWLock_AttributesSebastian Huber2016-04-213-36/+2
|
* score: Use chain iterator for user extensionsSebastian Huber2016-04-186-40/+184
| | | | | | | | | | | Add a lock and use a chain iterator for safe iteration during concurrent user extension addition and removal. Ensure that dynamically added thread delete and fatal extensions are called in reverse order. Update #2555. Update #2692.
* score: _User_extensions_Handler_initialization()Sebastian Huber2016-04-181-28/+23
| | | | Simplify _User_extensions_Handler_initialization().
* score: Add Chain_IteratorSebastian Huber2016-04-181-0/+239
| | | | | Add a chain iterator for safe iteration of chains with concurrent node extraction.
* powerpc: Add FSL_EIS_MAS8Sebastian Huber2016-04-131-0/+2
|
* score: Simplify _Objects_Get_no_protection()Sebastian Huber2016-04-123-13/+9
| | | | | | | This functions supports only local objects. Thus, drop the location parameter which was unused by all callers. Remove superfluous includes from Classic Region implementation.
* score: Compatibility with latest NewlibSebastian Huber2016-04-081-18/+18
|
* score: Add missing declarationSebastian Huber2016-04-061-0/+7
|
* score: Delete _Chain_Append()Sebastian Huber2016-04-063-65/+1
| | | | | | This function is not used in the score. Update #2555.
* score: Delete _Chain_Get()Sebastian Huber2016-04-063-56/+0
| | | | | | This function is not used in the score. Update #2555.
* score: Delete _Chain_Extract()Sebastian Huber2016-04-063-52/+1
| | | | | | This function is not used in the score. Update #2555.
* score: Delete _Chain_Insert()Sebastian Huber2016-04-063-75/+1
| | | | | | This function is not used in the score. Update #2555.
* score: Delete _Chain_Get_with_empty_check()Sebastian Huber2016-04-063-70/+0
| | | | | | This function is not used in the score. Update #2555.
* score: Delete _Chain_Prepend_with_empty_check()Sebastian Huber2016-04-063-64/+1
| | | | | | This function is not used in the score. Update #2555.
* score: Delete _Chain_Append_with_empty_check()Sebastian Huber2016-04-063-64/+1
| | | | | | This function is not used in the score. Update #2555.
* score: Delete _Chain_Prepend()Sebastian Huber2016-04-061-19/+0
| | | | | | This function is not used in the score. Update #2555.
* score: Use red-black tree for active global objectsSebastian Huber2016-04-067-199/+317
| | | | | | | Use a red-black tree to lookup active global objects by identifier or name. Update #2555.
* score: Use red-black tree for active MP proxiesSebastian Huber2016-04-063-91/+106
| | | | Update #2555.
* score: Add node map to _RBTree_Find_inline()Sebastian Huber2016-04-061-6/+12
|
* score: Rework MP thread queue callout supportSebastian Huber2016-04-0623-384/+774
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Simplify _Thread_queue_Do_flush()Sebastian Huber2016-04-061-4/+1
| | | | | Also set the thread wait return code for thread proxies since this causes no harm.
* score: _Thread_queue_Flush() parameter changesSebastian Huber2016-04-0610-150/+154
| | | | | | | | | | | | Change _Thread_queue_Flush() into a macro that invokes _Thread_queue_Do_flush() with the parameter set defined by RTEMS_MULTIPROCESSING. For multiprocessing configurations add the object identifier to avoid direct use of the thread wait information. Use mp_ prefix for multiprocessing related parameters. Rename Thread_queue_Flush_callout to Thread_queue_MP_callout since this type will be re-used later for other operations as well.
* score: Fix _Thread_queue_Extract_locked()Sebastian Huber2016-04-061-4/+8
| | | | | | We must update the wait flags under protection of the current thread lock, otherwise a _Thread_Timeout() running on another processor may interfere.
* score: Delete MP support for RW locksSebastian Huber2016-04-063-36/+13
| | | | MP support was not implemented.
* score: Delete Thread_Wait_information::idSebastian Huber2016-04-0614-13/+100
| | | | | | | | | | | 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-0/+40
|