summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Rework CORE inherit priority mutexSebastian Huber2016-05-308-178/+48
| | | | | Provide dedicated seize and surrender methods for inherit priority mutexes. This eliminates CORE_mutex_Attributes.
* score: Rework CORE priority ceiling mutexSebastian Huber2016-05-304-66/+19
| | | | | Rework seize and surrender methods to use CORE_ceiling_mutex_Control. This eliminates CORE_mutex_Disciplines.
* score: Add CORE mutex variantsSebastian Huber2016-05-304-54/+59
| | | | | | | | Add CORE_recursive_mutex_Control and CORE_ceiling_mutex_Control to avoid the run-time evaluation of attributes to figure out how a particular mutex methods should behave. Start with the no protocol variants. This eliminates the CORE_MUTEX_DISCIPLINES_FIFO and CORE_MUTEX_DISCIPLINES_PRIORITY disciplines.
* score: Simplify CORE mutexSebastian Huber2016-05-301-3/+0
| | | | | Remove superfluous support for simple binary semaphores. With this we can get rid of the CORE_MUTEX_NESTING_BLOCKS variant.
* score: Add semaphore variantsSebastian Huber2016-05-302-11/+11
|
* score: _CORE_mutex_Check_dispatch_for_seize()Sebastian Huber2016-05-3013-157/+205
| | | | | | | | | | | Move the safety check performed by _CORE_mutex_Check_dispatch_for_seize() out of the performance critical path and generalize it. Blocking on a thread queue with an unexpected thread dispatch disabled level is illegal in all system states. Add the expected thread dispatch disable level (which may be 1 or 2 depending on the operation) to Thread_queue_Context and use it in _Thread_queue_Enqueue_critical().
* score: Add _Thread_queue_Context_set_MP_callout()Sebastian Huber2016-05-308-13/+15
| | | | | | Add _Thread_queue_Context_set_MP_callout() to simplify _Thread_queue_Context_initialize(). This makes it possible to more easily add additional fields to Thread_queue_Context.
* score: Adjust thread queue layoutSebastian Huber2016-05-302-29/+28
| | | | | | Adjust thread queue layout according to Newlib. This makes it possible to use the same implementation for <sys/lock.h> and CORE mutexes in the future.
* score: Add libatomic supportSebastian Huber2016-05-301-0/+79
| | | | Close #2695.
* score: Add Status_Control for all APIsSebastian Huber2016-05-2625-156/+109
| | | | | | | | | | | Unify the status codes of the Classic and POSIX API to use the new enum Status_Control. This eliminates the Thread_Control::Wait::timeout_code field and the timeout parameter of _Thread_queue_Enqueue_critical() and _MPCI_Send_request_packet(). It gets rid of the status code translation tables and instead uses simple bit operations to get the status for a particular API. This enables translation of status code constants at compile time. Add _Thread_Wait_get_status() to avoid direct access of thread internal data structures.
* Fix semaphore post overflow statusSebastian Huber2016-05-261-1/+1
| | | | Close #2720.
* posix: Fix pthread_spin_unlock() error statusSebastian Huber2016-05-251-9/+4
| | | | Close #2719.
* score: Move thread queue MP callout to contextSebastian Huber2016-05-2524-263/+244
| | | | | | | | Drop the multiprocessing (MP) dependent callout parameter from the thread queue extract, dequeue, flush and unblock methods. Merge this parameter with the lock context into new structure Thread_queue_Context. This helps to gets rid of the conditionally compiled method call helpers.
* score: Get rid of mp_id parameterSebastian Huber2016-05-2517-41/+14
| | | | | Get rid of the mp_id parameter used for some thread queue methods. Use THREAD_QUEUE_QUEUE_TO_OBJECT() instead.
* score: Move thread queue object supportSebastian Huber2016-05-251-6/+2
|
* mpci: Fix thread queue flush methodSebastian Huber2016-05-254-48/+26
| | | | | | | We must call the MP callout for proxies if we unblock them after a thread queue extraction. This was missing in _Thread_queue_Flush_critical(). Move thread remove timer and unblock code to new function _Thread_Remove_timer_and_unblock().
* cpukit, testsuite: Add rtems_printf and rtems_printer support.Chris Johns2016-05-251-17/+13
| | | | | | | | | | | | | | | | | | | This change adds rtems_printf and related functions and wraps the RTEMS print plugin support into a user API. All references to the plugin are removed and replaced with the rtems_printer interface. Printk and related functions are made to return a valid number of characters formatted and output. The function attribute to check printf functions has been added to rtems_printf and printk. No changes to remove warrnings are part of this patch set. The testsuite has been moved over to the rtems_printer. The testsuite has a mix of rtems_printer access and direct print control via the tmacros.h header file. The support for begink/endk has been removed as it served no purpose and only confused the code base. The testsuite has not been refactored to use rtems_printf. This is future work.
* score: Fix blocking _CORE_message_queue_Submit()Sebastian Huber2016-05-241-1/+2
| | | | Close #2718.
* score: _CORE_message_queue_Seize()Sebastian Huber2016-05-241-1/+0
| | | | Delete unused parameter.
* score: _CORE_semaphore_Seize()Sebastian Huber2016-05-201-1/+0
| | | | Delete unused parameter.
* Replace *_Get_interrupt_disable() with *_Get()Sebastian Huber2016-05-206-6/+6
| | | | | Uniformly use *_Get() to get an object by identifier with a lock context.
* score: Rename _Objects_Get_local()Sebastian Huber2016-05-204-4/+4
| | | | | | Rename _Objects_Get_local() into _Objects_Get(). Confusions with the previous _Objects_Get() function are avoided since the Objects_Locations parameter is gone.
* score: Delete unused _Objects_Get_isr_disable()Sebastian Huber2016-05-201-55/+0
| | | | Delete now unused Objects_Locations.
* mpci: Simplify _Objects_MP_Is_remote()Sebastian Huber2016-05-202-11/+9
|
* score: Use _RBTree_Insert_inline()Sebastian Huber2016-05-202-27/+22
| | | | | | Use _RBTree_Insert_inline() for priority thread queues. Update #2556.
* score: Remove the Giant lockSebastian Huber2016-05-204-241/+0
| | | | Update #2555.
* score: Rename _ISR_Disable() and _ISR_Enable()Sebastian Huber2016-05-202-12/+2
| | | | | | | | | Rename _ISR_Disable() into _ISR_Local_disable(). Rename _ISR_Enable() into _ISR_Local_enable(). Remove _Debug_Is_owner_of_giant(). This is a preparation to remove the Giant lock. Update #2555.
* score: Rename _ISR_Disable_without_giant()Sebastian Huber2016-05-208-20/+20
| | | | | | | | | Rename _ISR_Disable_without_giant() into _ISR_Local_disable(). Rename _ISR_Enable_without_giant() into _ISR_Local_enable(). This is a preparation to remove the Giant lock. Update #2555.
* score: Avoid Giant _Objects_Extend_information()Sebastian Huber2016-05-201-5/+4
| | | | | | | Avoid Giant lock for _Objects_Extend_information(). Update #2280. Update #2555.
* score: Delete unused _Objects_Get()Sebastian Huber2016-05-201-80/+0
| | | | Update #2555.
* score: Delete unused _Thread_Get()Sebastian Huber2016-05-201-22/+0
| | | | Update #2555.
* posix: Rework thread cancellationSebastian Huber2016-05-201-3/+3
| | | | | | | | Add Thread_Life_state::THREAD_LIFE_CHANGE_DEFERRED and rework the POSIX thread cancellation to use the thread life states. Update #2555. Update #2626.
* score: Avoid Giant lock for _Thread_Start()Sebastian Huber2016-05-202-10/+23
| | | | Update #2555.
* posix: Rework pthread_join()Sebastian Huber2016-05-201-4/+88
| | | | | | | | | Rework pthread_join() to use _Thread_Join(). Close #2402. Update #2555. Update #2626. Close #2714.
* score: Simplify _Thread_Life_action_handler()Sebastian Huber2016-05-202-67/+29
| | | | | | | | Use _Thread_Change_life_locked() to avoid duplicated code. Avoid Giant lock in _Thread_Life_action_handler(). Update #2555. Update #2626.
* score: Rework _Thread_Cancel()Sebastian Huber2016-05-201-54/+31
| | | | | | | Rework _Thread_Cancel() to use _Thread_Change_life_locked(). Update #2555. Update #2626.
* score: Rework _Thread_Restart_other()Sebastian Huber2016-05-201-9/+79
| | | | | | | | | Rework _Thread_Restart_other() to use _Thread_Change_life_locked(). Cope with concurrent change requests by means of a pending request counter. Update #2555. Update #2626.
* score: Split _Thread_Restart()Sebastian Huber2016-05-202-20/+86
| | | | | | | | | | | Split _Thread_Restart() into _Thread_Restart_self() and _Thread_Restart_other(). Move content of existing _Thread_Restart_self() into new _Thread_Restart_self(). Avoid Giant lock for thread restart. _Thread_Restart_self() is a no-return function and used by _Thread_Global_construction(). Update #2555. Update #2626.
* score: Add _Thread_Clear_state_locked()Sebastian Huber2016-05-201-5/+16
| | | | | | | | This makes it possible to do thread state and thread life changes together under protection of the thread state lock. Update #2555. Update #2626.
* score: Add _Thread_Set_state_locked()Sebastian Huber2016-05-201-6/+17
| | | | | | | | This makes it possible to do thread state and thread life changes together under protection of the thread state lock. Update #2555. Update #2626.
* score: Add _Thread_Join() and _Thread_Cancel()Sebastian Huber2016-05-201-20/+61
| | | | | | | | Split _Thread_Close() into _Thread_Join() and _Thread_Cancel() to prepare for a re-use in pthread_join() and pthread_cancel(). Update #2555. Update #2626.
* score: Rework _Thread_Exit()Sebastian Huber2016-05-201-4/+16
| | | | | | | Rework _Thread_Exit() to use _Thread_Change_life_locked(). Update #2555. Update #2626.
* score: Add _Thread_Raise_real_priority()Sebastian Huber2016-05-201-14/+16
| | | | | Update #2555. Update #2626.
* score: Add Thread_Change_life()Sebastian Huber2016-05-203-50/+66
| | | | | | | | | Add _Thread_Change_life_locked() as a general function to alter the thread life state. Use it to implement _Thread_Set_life_protection() as a first step. Update #2555. Update #2626.
* score: Delete unused variableSebastian Huber2016-05-201-6/+3
| | | | | Update #2555. Update #2626.
* score: Avoid superfluous life protectionSebastian Huber2016-05-201-3/+0
| | | | | | | | Disable thread dispatching is enough to prevent deletion of the executing thread. There is no need for an additional life protection. Update #2555. Update #2626.
* score: Add _Thread_Exit()Sebastian Huber2016-05-201-4/+14
| | | | | | | | The goal is to make _Thread_Exit() a no-return function in follow up patches. Update #2555. Update #2626.
* SMP: Move lock stats to separate header fileSebastian Huber2016-05-191-3/+127
|
* score: Avoid Giant lock _Scheduler_Get_affinity()Sebastian Huber2016-05-121-3/+10
| | | | Update #2555.
* score: Avoid Giant lock _Scheduler_Set_affinity()Sebastian Huber2016-05-122-13/+32
| | | | Update #2555.