summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* score: Avoid Giant lock for _Thread_Start()Sebastian Huber2016-05-207-80/+45
| | | | Update #2555.
* posix: Rework pthread_join()Sebastian Huber2016-05-2013-188/+243
| | | | | | | | | Rework pthread_join() to use _Thread_Join(). Close #2402. Update #2555. Update #2626. Close #2714.
* score: Simplify _Thread_Life_action_handler()Sebastian Huber2016-05-203-68/+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-204-12/+87
| | | | | | | | | 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-204-68/+116
| | | | | | | | | | | 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_Dispatch_disable_with_CPU()Sebastian Huber2016-05-201-5/+23
| | | | | Update #2555. Update #2626.
* score: Add _Thread_Clear_state_locked()Sebastian Huber2016-05-202-5/+21
| | | | | | | | 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-202-6/+22
| | | | | | | | 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-205-32/+70
| | | | | | | | 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-209-67/+90
| | | | | | | | | 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-203-12/+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-204-6/+32
| | | | | | | | The goal is to make _Thread_Exit() a no-return function in follow up patches. Update #2555. Update #2626.
* score: Delete redundant thread life enumsSebastian Huber2016-05-202-6/+6
| | | | | | | This makes it easier to add more states in the future. Update #2555. Update #2626.
* psxclassic01: Assume correct pthread_detach()Sebastian Huber2016-05-202-10/+31
| | | | Update #2714.
* arm/raspberrypi: add cmdline support for rpi bsp.Pavel Pisa2016-05-193-0/+54
|
* arm/raspberrypi: add VideoCore frame buffer control supportYANG Qiao2016-05-195-0/+832
|
* arm/raspberrypi: add VideoCore mailbox support read and writeYANG Qiao2016-05-195-0/+145
|
* arm/raspberrypi: add locking around GPIO pin function selection.Pavel Pisa2016-05-191-0/+5
| | | | | | | | | | This is required if function or direction is changed by some driver after start of thread multitasking or in interrupts drivers. There can be problem with calling GPIO function selection before data section is initialized. But actual ticket lock implementation seems to be compatible even with memory initialized to zero oven on SMP.
* arm/raspberrypi: correct GPIO pin function selection.Pavel Pisa2016-05-192-10/+11
| | | | | | Original implementation does only bitwise-or with previous register value for all functions except IN. Switch from one to other function would lead to incorrect value.
* arm/raspberrypi: ensure that RTEMS application image can be started by U-boot.Pavel Pisa2016-05-192-1/+39
| | | | | | | | | | | | | | | | The current versions of U-boot start kernel/RTEMS application image with instruction and data caches enabled and it sets exception base register to new address after its self-relocation. ldr r0, [r9, #GD_RELOCADDR] /* r0 = gd->relocaddr */ mcr p15, 0, r0, c12, c0, 0 /* Set VBAR */ Included changes in bsp_start_hook_0 restore default state to allow RTEMS image to run after startup from newer U-boot version on Raspberry Pi. Clear interrupt enable registers in interrupt controller to ensure that RTEMS starts from well defined state.
* bsps/arm: CP15 support for flush prefetch buffer and table base control.Pavel Pisa2016-05-191-0/+48
|
* SMP: Add Mellor-Crummey and Scott (MCS) lockSebastian Huber2016-05-194-14/+426
| | | | | | | | | | Added only for evaluation purposes. We have to compare the performance against the ticket lock on the interesting platforms via smptests/smplock01. The following GCC shortcoming affects the MCS lock: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66867
* SMP: Add and use lock statistics helperSebastian Huber2016-05-192-28/+54
|
* SMP: Move ticket lock to separate header fileSebastian Huber2016-05-194-160/+208
|
* SMP: Move lock stats to separate header fileSebastian Huber2016-05-195-333/+397
|
* psxtests/psxualarm: Avoid output in signal handlerSebastian Huber2016-05-182-14/+7
| | | | | | Avoid output in signal handler to not disturb the timings which are checked in this test. Use asserts to ensure proper signal handler invocations.
* posix: Fix return states of pthread_kill()Sebastian Huber2016-05-172-23/+13
| | | | | | POSIX mandates that an error code is returned and not -1 plus errno. Close #2715.
* psxtests/psxcancel: Add pthread_detach() testsSebastian Huber2016-05-172-0/+87
| | | | Update #2714.
* psxtests/psxcancel: Add resource checkSebastian Huber2016-05-171-8/+26
|
* sptests/spthreadlife01: Add self delete test caseSebastian Huber2016-05-171-6/+35
|
* posix: Fix return status of pthread_cancel()Sebastian Huber2016-05-172-3/+3
| | | | | | | POSIX recommends ESRCH in case no thread exists for the specified identifier. Close #2713.
* capture: Fix use of per-processor dataSebastian Huber2016-05-122-27/+31
| | | | | | Get the current processor index only once and with interrupts disabled. Close #2707.
* capture: Remove superfluous includesSebastian Huber2016-05-121-3/+0
|
* capture: Compact rtems_capture_record_tSebastian Huber2016-05-121-1/+1
| | | | | Order fields according to alignment to reduce structure internal padding.
* capture: Fix buffer allocation and freeSebastian Huber2016-05-122-11/+11
| | | | | | | Do not use function static variables. Remove superfluous volatile qualifiers. Use proper integer types. Close #2706.
* smptests/smpcapture02: Adjust for clock changesSebastian Huber2016-05-121-8/+8
| | | | | | | Fix overall clock tick count. Change introduced by 90d8567d34a6d80da04b1cb37b667a3173f584c4. Update #2554.
* rtems: Add rtems_interrupt_lock_interrupt_disableSebastian Huber2016-05-121-0/+13
| | | | Update #2707.
* score: Avoid Giant lock for scheduler set/getSebastian Huber2016-05-125-65/+113
| | | | Update #2555.
* posix: Avoid Giant lock for some pthread functionsSebastian Huber2016-05-127-132/+103
| | | | | | | | Avoid Giant lock for pthread_getattr_np(), pthread_setschedparam() and pthread_getschedparam(). Replace POSIX threads scheduler lock with thread state lock. Update #2555.
* score: Avoid Giant lock _Scheduler_Get_affinity()Sebastian Huber2016-05-123-51/+62
| | | | Update #2555.
* score: Avoid Giant lock _Scheduler_Set_affinity()Sebastian Huber2016-05-129-69/+96
| | | | Update #2555.
* score: Use thread state lock for current stateSebastian Huber2016-05-1212-84/+182
| | | | | | | In addition protect scheduler of thread by thread state lock. Enables use of scheduler per-instance locks. Update #2555.
* rtems: Avoid Giant lock rtems_task_is_suspended()Sebastian Huber2016-05-121-35/+13
| | | | Update #2555.
* rtems: Avoid Giant lock for some task operationsSebastian Huber2016-05-125-131/+158
| | | | | | | Avoid Giant lock for rtems_task_set_priority(), rtems_task_suspend() and rtems_task_resume(). Update #2555.
* rtems: Use thread state lock for signalsSebastian Huber2016-05-127-120/+24
|
* score: Introduce thread state lockSebastian Huber2016-05-1211-114/+149
| | | | Update #2556.