summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-03-09score: Fix for GCC version 5 and laterSebastian Huber1-1/+2
2015-03-09score: TypoSebastian Huber1-1/+1
Close #2286.
2015-03-06Fix even more Doxygen issuesJoel Sherrill9-9/+40
2015-03-06coremuteximpl.h: Reorder macro names to match body and fix Doxygen warningsJoel Sherrill1-7/+13
closes 2285.
2015-03-06Fix more Doxygen typosJoel Sherrill3-5/+5
2015-03-06Fix a number of minor Doxygen formatting issuesJoel Sherrill2-4/+4
2015-03-06score: Allow NULL for SMP lock nameSebastian Huber1-1/+1
2015-03-06score: Fix SMP lock implementationSebastian Huber3-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
2015-03-05score: Add compiler memory barrier to atomic opsSebastian Huber1-0/+6
2015-03-05score: Add thread wait flagsSebastian Huber2-0/+191
Update #2273.
2015-03-05score: Add thread acquireSebastian Huber1-0/+18
Update #2273.
2015-03-05score: Add ISR lock to Objects_ControlSebastian Huber2-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.
2015-03-05score: Thread dispatch dis/enable without GiantSebastian Huber1-22/+82
Update #2273.
2015-03-05score: Add and use _Thread_Do_dispatch()Sebastian Huber1-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.
2015-03-05score: Simplify and fix signal deliverySebastian Huber1-42/+12
Deliver the POSIX signals after the thread state was updated to avoid race-conditions on SMP configurations. Update #2273.
2015-03-05score: Update _Thread_Heir only if necessarySebastian Huber1-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.
2015-03-05score: Add and use PRIORITY_PSEUDO_ISRSebastian Huber1-0/+7
2015-03-05score: C/C++ compatibility macros for ISR locksSebastian Huber1-4/+51
Update #2273.
2015-03-05score: DocumentationAlexander Krutwig1-0/+13
2015-03-04score: ISR lock C/C++ compatiblity issueSebastian Huber1-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.
2015-03-04score: Add and use _Thread_Enable_dispatch_body()Sebastian Huber1-2/+7
Update #2273.
2015-03-04score: Inline _Thread_Disable_dispatch() for SMPSebastian Huber1-2/+1
2015-03-04score: Add parameter to Giant acquire/releaseSebastian Huber2-6/+14
Update #2273.
2015-03-02score: Enable SMP barriers for all configurationsSebastian Huber1-5/+0
2015-02-19score: Make <rtems/score/atomic.h> availableSebastian Huber2-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.
2015-02-17score: Fix FP context restore via _Thread_HandlerSebastian Huber1-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.
2015-01-22score: Delete superfluous Heap_Statistics::instanceSebastian Huber1-5/+0
This value depends on the _Heap_Initialize() call sequence and carries no useful information.
2015-01-09smp: Add and use _SMP_Should_start_processor()Sebastian Huber1-0/+11
2014-12-18smp: Fix timeout for MrsP semaphoresSebastian Huber2-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.
2014-11-28score: Add heap statisticsSebastian Huber1-3/+22
Add lifetime bytes allocated and freed since they were present in the malloc statistics. Add number of failed allocations.
2014-11-28score: Return heap stats via _Heap_Get_informationSebastian Huber1-1/+2
Print out heap statistics via the MALLOC and WKSPACE shell commands.
2014-11-27smp: Fix scheduler helping protocolSebastian Huber1-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.
2014-11-27smp: Fix scheduler helping protocol assertionsSebastian Huber1-3/+5
2014-11-26objectimpl.h: Add _Assert() to _Objects_Invalidate_Id()Josh Oguin1-0/+6
CodeSonar flagged this as a possible NULL deference. This should never occur but adding the _Assert() ensures we are guarding against that.
2014-11-26chainimpl.h: Add _Assert() to _Chain_Initialize_empty()Josh Oguin1-3/+9
CodeSonar flagged this as a potential NULL deference. That should never occur but adding the _Assert() ensures we are checking that.
2014-11-24_Scheduler_FIXME_thread_priority_queues_are_brokenSebastian Huber1-9/+0
Delete this variable since it is no longer necessary due to the thread priority queue implementation change to use RB trees.
2014-11-24smp: Fix scheduler helping protocolLuca Bonato2-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.
2014-11-23rtems/score/object.h: Correct types on _Objects_Build_idSantosh G Vattam1-3/+3
close 1423
2014-11-20cpukit: basedefs: macro for packed attributeJan Dolezal1-0/+10
2014-10-27score: Move is_executing_on_a_core from cpuusagereport.c to threadimpl.hJennifer Averett1-0/+30
2014-10-27score: Add capture data to tcb.Jennifer Averett1-0/+7
2014-10-15rtems/score/object.h: Include <rtems/score/cpu.h> to honor 16-bit IdsJoel Sherrill1-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.
2014-10-13score: Rework global constructionSebastian Huber1-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.
2014-09-23score: Delete Thread_Wait_information::Block2nSebastian Huber1-4/+0
This field is no longer used.
2014-09-08score: More strict RTEMS_DEQUALIFY implementation.Pavel Pisa1-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.
2014-09-08score: Add RTEMS_DECONST|DEVOLATILE|DEQUALIFY()Sebastian Huber1-0/+27
2014-09-04rtems/score/assert.h: Rework to allow use of NDEBUGJoel Sherrill1-13/+43
2014-08-25rtems: Inline rtems_clock_get_ticks_since_boot()Sebastian Huber2-8/+7
Update documentation.
2014-08-22score: Add SMP support to the cache managerDaniel Cederman1-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.
2014-08-22score: Rename SMP broadcast message functionDaniel Cederman1-2/+2
Change message type to unsigned long to match other SMP message functions.