summaryrefslogtreecommitdiffstats
path: root/cpukit (follow)
Commit message (Collapse)AuthorAgeFilesLines
* posix: nanosleep: optimize away a time conversionGedare Bloom2016-07-291-2/+1
| | | | updates #2732
* score: Add deadlock detectionSebastian Huber2016-07-278-19/+356
| | | | | | | | | | 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: Turn thread lock into thread wait lockSebastian Huber2016-07-2719-420/+766
| | | | | | | | | The _Thread_Lock_acquire() function had a potentially infinite run-time due to the lack of fairness at atomic operations level. Update #2412. Update #2556. Update #2765.
* score: Priority inherit thread queue operationsSebastian Huber2016-07-279-77/+116
| | | | | | | | | Move the priority change due to priority interitance to the thread queue enqueue operation to simplify the locking on SMP configurations. Update #2412. Update #2556. Update #2765.
* score: Simplify _Thread_queue_Boost_priority()Sebastian Huber2016-07-273-19/+23
| | | | | | | | | | Raise the priority under thread queue lock protection and omit the superfluous thread queue priority change, since the thread is extracted anyway. The unblock operation will pick up the new priority. Update #2412. Update #2556. Update #2765.
* score: Split _Thread_Change_priority()Sebastian Huber2016-07-272-9/+62
| | | | | | Update #2412. Update #2556. Update #2765.
* score: Fix for RTEMS_DEBUGSebastian Huber2016-07-271-0/+1
|
* posix: Fix error statusSebastian Huber2016-07-271-2/+3
|
* cpukit: refactor nanosleep and use 64-bit timeout for threadqGedare Bloom2016-07-262-58/+68
| | | | | | | | | | * Fixes a bug with elapsed time calculations misusing absolute time arguments in nanosleep_helper by passing the requested relative interval. * Fixes a bug with truncation of absolute timeouts by passing the full 64-bit value to Thread_queue_Enqueue. * Share yield logic between nanosleep and clock_nanosleep. updates #2732
* Add Untar_FromGzChunk_Print() + TestAlexander Krutwig2016-07-263-1/+123
|
* Add Untar_FromChunk_Print() + TestAlexander Krutwig2016-07-262-1/+197
|
* score: FormatSebastian Huber2016-07-261-9/+9
|
* score: Fix printk() format specifiersSebastian Huber2016-07-261-2/+5
|
* score: FormatSebastian Huber2016-07-262-24/+21
|
* score: Add a STATES_DEBUGGER for use by debugging agents to a thread's state.Chris Johns2016-07-261-0/+2
|
* posix: fix clock_nanosleep and nanosleep clock useGedare Bloom2016-07-251-25/+68
| | | | | | | | | | Sleeping with CLOCK_REALTIME should use the WATCHDOG_ABSOLUTE clock discipline for the threadq so that the timeout interval may change in case the clock source changes. Similarly, CLOCK_MONOTONIC uses the WATCHDOG_RELATIVE threadq that will only wakeup the thread after the requested count of ticks elapse. updates #2732
* posix: cond_timedwait remember and use clock from condattrGedare Bloom2016-07-2515-15/+29
| | | | updates #2745
* posix: refactor cond wait support to defer abstime conversionGedare Bloom2016-07-254-32/+33
| | | | updates #2745
* cpukit/rtems: fix return type mismatch for _TOD_To_secondsGedare Bloom2016-07-251-1/+1
|
* posix: add clock_nanosleep and testsGedare Bloom2016-07-251-9/+46
| | | | updates #2732
* cpukit: Add and use Watchdog_Discipline.Gedare Bloom2016-07-2547-144/+200
| | | | | | | | | Clock disciplines may be WATCHDOG_RELATIVE, WATCHDOG_ABSOLUTE, or WATCHDOG_NO_TIMEOUT. A discipline of WATCHDOG_RELATIVE with a timeout of WATCHDOG_NO_TIMEOUT is equivalent to a discipline of WATCHDOG_NO_TIMEOUT. updates #2732
* score: Fix for RTEMS_DEBUGSebastian Huber2016-07-251-0/+1
|
* score: Relax thread begin extension environmentSebastian Huber2016-07-251-7/+8
| | | | Update #2752.
* score: Disable RTEMS_NO_RETURN for RTEMS_DEBUGSebastian Huber2016-07-251-1/+1
| | | | | Do not use RTEMS_NO_RETURN hints for debug configurations to ease use of stack traces in case of fatal errors.
* score: Fix for RTEMS_DEBUGSebastian Huber2016-07-221-0/+1
|
* score: Assert proper seqlock writer stateSebastian Huber2016-07-221-0/+3
| | | | Helps to detect invalid concurrent writes.
* score: Add debug support to chainsSebastian Huber2016-07-2216-7/+84
| | | | | | | This helps to detect * double insert, append, prepend errors, and * get from empty chain errors.
* posix: Fix double chain extractSebastian Huber2016-07-211-5/+2
|
* libdl/rtl-obj.c: synchronize cache after code relocation.Pavel Pisa2016-07-214-2/+74
| | | | | | | | Memory content changes caused by relocation has to be propagated to memory/cache level which is used/snooped during instruction cache fill. Closes #2438
* Misc: Spell length correctlyJoel Sherrill2016-07-121-1/+1
|
* DOSFS - LENGHT -> LENGTHJoel Sherrill2016-07-124-6/+6
| | | | closes #2756,
* score: Postpone SMP shutdown in _Terminate()Sebastian Huber2016-07-062-4/+7
| | | | | This enables fatal extensions to continue program execution after some fatal errors.
* score: Do not disable ISR in _Terminate()Sebastian Huber2016-07-062-9/+1
| | | | | | | This partially reverts 38ee75853f674977609bd078c69fb53420afdd08. Let the calling context decide if interrupts must be disabled or not. The goal is to enable fatal extensions to continue program execution after some fatal errors.
* libdl/rtl-obj.c: ensure that loaded code is synchronized through caches.Pavel Pisa2016-07-041-0/+2
| | | | | | | | | | | | Synchronize each cluster of sections of the same type separately to support even cases where text and data are allocated from different areas (for example due allocation from different MPU protection regions). rtems_cache_instruction_sync_after_code_change is called even to data sections. Propagation of data only changes should not require cache maintenance operation on sane SMP mutithread capable systems if barrier instruction is added but be on safe side even for case where self modifying code uses data sections initial values etc.
* rtems+bsps/cache: Define cache manager operations for code synchronization ↵Pavel Pisa2016-07-042-1/+30
| | | | | | | | | | | | | | and maximal alignment. There is need for unambiguous named and defined cache function which should be called when code is updated, loaded or is self-modifying. There should be function to obtain maximal cache line length as well. This function can and should be used for allocations which can be used for data and or code and ensures that there are no partial cache lines overlaps on start and end of allocated region.
* score/arm: Ensure that copile time alignment is 64 bytes for Cortex-A multilib.Pavel Pisa2016-07-042-2/+9
| | | | | Some/many Cortex-A cores have data cache line length 64 bytes and maximum value has to be used for system structures alignment.
* arm/score and shared: define ARM hypervisor mode and alternate vector table ↵Pavel Pisa2016-07-041-0/+1
| | | | | | | | | base access. The main reason for inclusion of minimum hypervisor related defines is that current ARM boards firmware and loaders (U-boot for example) start loaded operating system kernel in HYP mode to allow it take control of virtualization (Linux/KVM for example).
* net: Fix byte order issue for getnameinfo()Sebastian Huber2016-07-011-4/+2
|
* score: Change scheduler node init and destroySebastian Huber2016-07-0123-64/+107
| | | | | | Provide the scheduler node to initialize or destroy to the corresponding operations. This makes it possible to have more than one scheduler node per thread.
* score: Fix MPCI message layoutSebastian Huber2016-07-011-1/+1
| | | | | | | | Restore the 32-bit priority field in MP_packet_Prefix. Bug introduced by 254dc82daf8cbd6922376fcbb81c31e21cbf4d16. Close #2750.
* rtems: Fix rtems_task_set_scheduler() APISebastian Huber2016-07-014-58/+89
| | | | | | | | | | | Task priorities are only valid within a scheduler instance. The rtems_task_set_scheduler() directive moves a task from one scheduler instance to another using the current priority of the thread. However, the current task priority of the source scheduler instance is undefined in the target scheduler instance. Add a third parameter to specify the priority. Close #2749.
* score: Workaround for #2751Sebastian Huber2016-07-011-0/+4
| | | | | | | | | | | | | | | The ARM and PowerPC interrupt epilogues call _Thread_Dispatch() with interrupts disabled (counter example: SPARC). On SMP configurations, since inter-processor interrupts set the thread dispatch necessary indicator this prevents a thread dispatch notification in post-switch handlers (which all run with interrupts disabled). On all configurations, this is a serious issue for the interrupt latency. Update #2751
* score: Next try to fix thread lock on SMPSebastian Huber2016-07-011-6/+16
|
* score: Fix priority affinity SMP schedulerSebastian Huber2016-07-011-2/+10
| | | | Bug introduced by 9bfad8cd519f17cbb26a672868169fcd304d5bd5.
* score: Strong APA scheduler processor allocationSebastian Huber2016-06-303-24/+24
| | | | | Use _Scheduler_SMP_Allocate_processor_exact() to prevent unexpected migrations.
* score: Avoid atomic fences for thread wait flagsSebastian Huber2016-06-307-34/+37
| | | | | The use of atomic fences is brittle and may break due to changes in different areas which is hard to manage.
* score: Fix thread lock on SMP configurationsSebastian Huber2016-06-304-12/+46
|
* score: _CPU_SMP_Send_interrupt() documentationSebastian Huber2016-06-291-4/+0
|
* score: Fix SMP message handlingSebastian Huber2016-06-295-28/+37
| | | | | | | | According to the C11 standard only atomic read-modify-write operations guarantee that the last value written in modification order is read, see "7.17.3 Order and consistency". Thus we must use a read-modify-write in _SMP_Inter_processor_interrupt_handler() to make sure we read an up-to-date message.
* libnetworking: Import current <sys/socket.h>Christian Mauderer2016-06-281-73/+373
| | | | | Import the <sys/socket.h> from current FreeBSD. This allows to build some current software (e.g. libressl).