summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: Fix for GCC version 5 and laterSebastian Huber2015-03-091-1/+2
|
* score: TypoSebastian Huber2015-03-091-1/+1
| | | | Close #2286.
* Fix even more Doxygen issuesJoel Sherrill2015-03-069-9/+40
|
* coremuteximpl.h: Reorder macro names to match body and fix Doxygen warningsJoel Sherrill2015-03-061-7/+13
| | | | closes 2285.
* Fix more Doxygen typosJoel Sherrill2015-03-063-5/+5
|
* Fix a number of minor Doxygen formatting issuesJoel Sherrill2015-03-062-4/+4
|
* score: Allow NULL for SMP lock nameSebastian Huber2015-03-061-1/+1
|
* score: Fix SMP lock implementationSebastian Huber2015-03-063-1/+9
| | | | | | | | See also: https://nahratzah.wordpress.com/2012/10/12/a-trivial-fair-spinlock/ http://concurrencyfreaks.blogspot.de/2014/05/relaxed-atomics-optimizations-for.html
* score: Add compiler memory barrier to atomic opsSebastian Huber2015-03-051-0/+6
|
* score: Add thread wait flagsSebastian Huber2015-03-052-0/+191
| | | | Update #2273.
* score: Add thread acquireSebastian Huber2015-03-051-0/+18
| | | | Update #2273.
* score: Add ISR lock to Objects_ControlSebastian Huber2015-03-052-0/+83
| | | | | | | | | This enables per-object SMP locks on SMP configurations and is the first step to support fine-grained locking. On uni-processor configuration there will be no overhead. The _Objects_Acquire() is intended to replace _Objects_Get_isr_disable(). Update #2273.
* score: Thread dispatch dis/enable without GiantSebastian Huber2015-03-051-22/+82
| | | | Update #2273.
* score: Add and use _Thread_Do_dispatch()Sebastian Huber2015-03-051-16/+55
| | | | | | | | | | | | The _Thread_Dispatch() function is quite complex and the time to set up and tear down the stack frame is significant. Split this function into two parts. The complex part is now in _Thread_Do_dispatch(). Call _Thread_Do_dispatch() in _Thread_Enable_dispatch() only if necessary. This increases the average case performance. Simplify _Thread_Handler() for SMP configurations. Update #2273.
* score: Simplify and fix signal deliverySebastian Huber2015-03-051-42/+12
| | | | | | | Deliver the POSIX signals after the thread state was updated to avoid race-conditions on SMP configurations. Update #2273.
* score: Update _Thread_Heir only if necessarySebastian Huber2015-03-051-6/+9
| | | | | | | | | | | | | | | | | | | | Previously, the _Thread_Heir was updated unconditionally in case a new heir was determined. The _Thread_Dispatch_necessary was only updated in case the executing thread was preemptible or an internal thread was unblocked. Change this to update the _Thread_Heir and _Thread_Dispatch_necessary only in case the currently selected heir thread is preemptible or a dispatch is forced. Move the schedule decision into the change priority operation and use the schedule operation only in rtems_task_mode() in case preemption is enabled or an ASR dispatch is necessary. This is a behaviour change. Previously, the RTEMS_NO_PREEMPT also prevented signal delivery in certain cases (not always). Now, signal delivery is no longer influenced by RTEMS_NO_PREEMPT. Since the currently selected heir thread is used to determine if a new heir is chosen, non-preemptible heir threads currently not executing now prevent a new heir. This may have an application impact, see change test tm04. Document this change in sp04. Update #2273.
* score: Add and use PRIORITY_PSEUDO_ISRSebastian Huber2015-03-051-0/+7
|
* score: C/C++ compatibility macros for ISR locksSebastian Huber2015-03-051-4/+51
| | | | Update #2273.
* score: DocumentationAlexander Krutwig2015-03-051-0/+13
|
* score: ISR lock C/C++ compatiblity issueSebastian Huber2015-03-041-65/+63
| | | | | | | | | | Empty structures are implementation-defined in C. GCC gives them a size of zero. In C++ empty structures have a non-zero size. Add ISR_LOCK_DEFINE() to define ISR locks for structures used by C and C++. Update #2273.
* score: Add and use _Thread_Enable_dispatch_body()Sebastian Huber2015-03-041-2/+7
| | | | Update #2273.
* score: Inline _Thread_Disable_dispatch() for SMPSebastian Huber2015-03-041-2/+1
|
* score: Add parameter to Giant acquire/releaseSebastian Huber2015-03-042-6/+14
| | | | Update #2273.
* score: Enable SMP barriers for all configurationsSebastian Huber2015-03-021-5/+0
|
* score: Make <rtems/score/atomic.h> availableSebastian Huber2015-02-192-196/+578
| | | | | | | | Make <rtems/score/atomic.h> available for all RTEMS configurations. Use inline functions instead of macros. Use ISR disable/enable on uni-processor configurations to ensure atomicity. Update #2273.
* score: Fix FP context restore via _Thread_HandlerSebastian Huber2015-02-171-0/+41
| | | | | | | | | | After a context switch we end up in the second part of _Thread_Dispatch() or in _Thread_Handler() in case of new threads. Use the same function _Thread_Restore_fp() to restore the floating-point context. It makes no sense to do this in _Thread_Start_multitasking(). This fixes also a race condition in SMP configurations. Update #2268.
* score: Delete superfluous Heap_Statistics::instanceSebastian Huber2015-01-221-5/+0
| | | | | This value depends on the _Heap_Initialize() call sequence and carries no useful information.
* smp: Add and use _SMP_Should_start_processor()Sebastian Huber2015-01-091-0/+11
|
* smp: Fix timeout for MrsP semaphoresSebastian Huber2014-12-182-60/+91
| | | | | | | | The previous timeout handling was flawed. In case a waiting thread helped out the owner could use the scheduler node indefinitely long. Update the resource tree in _MRSP_Timeout() to avoid this issue. Bug reported by Luca Bonato.
* score: Add heap statisticsSebastian Huber2014-11-281-3/+22
| | | | | Add lifetime bytes allocated and freed since they were present in the malloc statistics. Add number of failed allocations.
* score: Return heap stats via _Heap_Get_informationSebastian Huber2014-11-281-1/+2
| | | | Print out heap statistics via the MALLOC and WKSPACE shell commands.
* smp: Fix scheduler helping protocolSebastian Huber2014-11-271-34/+77
| | | | | | | Ensure that scheduler nodes in the SCHEDULER_HELP_ACTIVE_OWNER or SCHEDULER_HELP_ACTIVE_RIVAL helping state are always SCHEDULER_SMP_NODE_READY or SCHEDULER_SMP_NODE_SCHEDULED to ensure the MrsP protocol properties.
* smp: Fix scheduler helping protocol assertionsSebastian Huber2014-11-271-3/+5
|
* objectimpl.h: Add _Assert() to _Objects_Invalidate_Id()Josh Oguin2014-11-261-0/+6
| | | | | CodeSonar flagged this as a possible NULL deference. This should never occur but adding the _Assert() ensures we are guarding against that.
* chainimpl.h: Add _Assert() to _Chain_Initialize_empty()Josh Oguin2014-11-261-3/+9
| | | | | CodeSonar flagged this as a potential NULL deference. That should never occur but adding the _Assert() ensures we are checking that.
* _Scheduler_FIXME_thread_priority_queues_are_brokenSebastian Huber2014-11-241-9/+0
| | | | | Delete this variable since it is no longer necessary due to the thread priority queue implementation change to use RB trees.
* smp: Fix scheduler helping protocolLuca Bonato2014-11-242-18/+35
| | | | | | | | | | | | New test case for smptests/smpmrsp01. Fix _Scheduler_Block_node() in case the node is in the SCHEDULER_HELP_ACTIVE_RIVAL helping state. For example a rtems_task_suspend() on a task waiting for a MrsP semaphore. Fix _Scheduler_Unblock_node() in case the node is in the SCHEDULER_SMP_NODE_READY state. For example a rtems_task_resume() on a task owning or waiting for a MrsP semaphore.
* rtems/score/object.h: Correct types on _Objects_Build_idSantosh G Vattam2014-11-231-3/+3
| | | | close 1423
* cpukit: basedefs: macro for packed attributeJan Dolezal2014-11-201-0/+10
|
* score: Move is_executing_on_a_core from cpuusagereport.c to threadimpl.hJennifer Averett2014-10-271-0/+30
|
* score: Add capture data to tcb.Jennifer Averett2014-10-271-0/+7
|
* rtems/score/object.h: Include <rtems/score/cpu.h> to honor 16-bit IdsJoel Sherrill2014-10-151-0/+1
| | | | | | | Selection of 16-bit object Ids is a port specific decision. Somewhere along the way, the file providing this information was dropped from the include file set. This resulted in the code being compiled with a mix of 16 and 32 bit ID assumptions for those targets with 16-bit Ids.
* score: Rework global constructionSebastian Huber2014-10-131-0/+10
| | | | | | Ensure that the global construction is performed in the context of the first initialization thread. On SMP this was not guaranteed in the previous implementation.
* score: Delete Thread_Wait_information::Block2nSebastian Huber2014-09-231-4/+0
| | | | This field is no longer used.
* score: More strict RTEMS_DEQUALIFY implementation.Pavel Pisa2014-09-081-1/+53
| | | | | | | | | | | | This implementation is able to catch cast to type which differs not only in qualifiers. The error diagnostic message when used in function is self descriptive. Macro is compatible with used in initializers but there message about not constant initial value signals types incompatibility. The actual implementation does not distinguish between volatile and const removal.
* score: Add RTEMS_DECONST|DEVOLATILE|DEQUALIFY()Sebastian Huber2014-09-081-0/+27
|
* rtems/score/assert.h: Rework to allow use of NDEBUGJoel Sherrill2014-09-041-13/+43
|
* rtems: Inline rtems_clock_get_ticks_since_boot()Sebastian Huber2014-08-252-8/+7
| | | | Update documentation.
* score: Add SMP support to the cache managerDaniel Cederman2014-08-221-0/+19
| | | | | | | | | Adds functions that allows the user to specify which cores that should perform the cache operation. SMP messages are sent to all the specified cores and the caller waits until all cores have acknowledged that they have flushed their cache. If CPU_CACHE_NO_INSTRUCTION_CACHE_SNOOPING is defined the instruction cache invalidation function will perform the operation on all cores using the previous method.
* score: Rename SMP broadcast message functionDaniel Cederman2014-08-221-2/+2
| | | | Change message type to unsigned long to match other SMP message functions.