summaryrefslogtreecommitdiffstats
path: root/cpukit/score (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* arm: Use Per_CPU_Control::isr_dispatch_disableSebastian Huber2016-11-184-31/+94
| | | | Update #2751.
* arm: Simplify _ARMV4_Exception_interruptSebastian Huber2016-11-181-18/+22
| | | | | Move profiling code closer to bsp_interrupt_disable() to allow re-use of r9 later.
* arm: Use local labelsSebastian Huber2016-11-181-9/+9
|
* sparc: Use Per_CPU_Control::isr_dispatch_disableSebastian Huber2016-11-182-22/+5
| | | | Update #2751.
* score: Allow interrupts during thread dispatchSebastian Huber2016-11-185-38/+21
| | | | | | | | | Use a processor-specific interrupt frame during context switches in case the executing thread is longer executes on the processor and the heir thread is about to start execution. During this period we must not use a thread stack for interrupt processing. Update #2809.
* score: Add Per_CPU_Control::Interrupt_frameSebastian Huber2016-11-183-9/+38
| | | | Update #2809.
* score: Add Per_CPU_Control::isr_dispatch_disableSebastian Huber2016-11-182-1/+19
| | | | Update #2751.
* arm: Provide CPU_Interrupt_frame for ARMv4Sebastian Huber2016-11-182-3/+55
| | | | Update #2809.
* powerpc: Add up to date CPU_Interrupt_frameSebastian Huber2016-11-182-6/+386
| | | | | | | Rename ppc_exc_min_frame to CPU_Interrupt_frame. Move it and the corresponding defines to <rtems/score/cpuimpl.h>. Update #2809.
* powerpc: Move legacy CPU_Interrupt_frameSebastian Huber2016-11-181-31/+0
| | | | | | | The only remaining user of CPU_Interrupt_frame on PowerPC is the mpc5xx support. Move it to here. Update #2809.
* sparc: Move CPU_Interrupt_frame related definesSebastian Huber2016-11-185-54/+58
| | | | | | Move CPU_Interrupt_frame related defines to <rtems/score/cpuimpl.h>. Update #2809.
* sparc: Rename CPU_Minimum_stack_frameSebastian Huber2016-11-184-26/+26
| | | | | | | | Rename SPARC-specific CPU_Minimum_stack_frame to SPARC_Minimum_stack_frame. Rename SPARC-specific CPU_MINIMUM_STACK_FRAME_SIZE to SPARC_MINIMUM_STACK_FRAME_SIZE. Update #2809.
* sparc64: Rename CPU_Minimum_stack_frameSebastian Huber2016-11-183-30/+30
| | | | | | | | Rename SPARC64-specific CPU_Minimum_stack_frame to SPARC64_Minimum_stack_frame. Rename SPARC64-specific CPU_MINIMUM_STACK_FRAME_SIZE to SPARC64_MINIMUM_STACK_FRAME_SIZE. Update #2809.
* rtems: Conditionally define rtems_interrupt_frameSebastian Huber2016-11-1815-15/+15
| | | | Update #2808.
* score: Move CPU_PER_CPU_CONTROL_SIZESebastian Huber2016-11-1834-94/+125
| | | | | Move CPU_PER_CPU_CONTROL_SIZE and the optional CPU_Per_CPU_control to <rtems/score/cpuimpl.h> to hide it from <rtems.h>.
* score: Add and use _Thread_Dispatch_direct()Sebastian Huber2016-11-184-8/+33
| | | | | | | | | | This function is useful for operations which synchronously block, e.g. self restart, self deletion, yield, sleep. It helps to detect if these operations are called in the wrong context. Since the thread dispatch necessary indicator is not used, this is more robust in some SMP situations. Update #2751.
* score: Remove obsolete definesSebastian Huber2016-11-1818-281/+0
| | | | The thread dispatch inline option is no longer used.
* arm: Use TPIDRPRW for current per-CPU controlSebastian Huber2016-11-184-9/+30
| | | | | | Use the previously unused TPIDRPRW register to get the per-CPU control of the current processor. This avoids instructions in GET_SELF_CPU_CONTROL which are not available in Thumb mode.
* powerpc: Add _CPU_Get_current_per_CPU_control()Sebastian Huber2016-11-101-0/+27
| | | | | | | | Add _CPU_Get_current_per_CPU_control() on SMP configurations. Use SPRG0 for the current per-CPU control. This reduces the code size by three instructions and is slightly faster. Update #2805.
* score: Move _CPU_Get_current_per_CPU_control()Sebastian Huber2016-11-104-28/+28
| | | | | Move _CPU_Get_current_per_CPU_control() from <rtems/score/cpu.h> to <rtems/score/cpuimpl.h>.
* rtems: Add scheduler processor add/removeSebastian Huber2016-11-1014-3/+326
| | | | Update #2797.
* score: Add and use Thread_Control::is_idleSebastian Huber2016-11-092-0/+3
| | | | Update #2797.
* score: Rename _Scheduler_AssignmentsSebastian Huber2016-11-093-33/+36
| | | | | | | | Rename _Scheduler_Assignments into _Scheduler_Initial_assignments to make it clear that they may not reflect the run-time scheduler assignment. Update #2797.
* score: Clarify _Scheduler_SMP_Start_idle()Sebastian Huber2016-11-092-10/+14
|
* score: Add scheduler to per-CPU informationSebastian Huber2016-11-094-28/+41
| | | | | | | This makes it possible to adjust the scheduler of a processor at run-time. Update #2797.
* score: Avoid _Scheduler_Get_by_CPU_index( 0 )Sebastian Huber2016-11-091-1/+1
| | | | Avoid use of processor index 0 which may have no scheduler assigned.
* score: Simplify _Scheduler_Get_by_id()Sebastian Huber2016-11-091-44/+66
| | | | | | | | | | Avoid dead code in non-SMP configurations. Return scheduler identifier independent of the current processor count of the scheduler via rtems_scheduler_ident(), since this value may change during run-time. Check the processor count in _Scheduler_Set() under scheduler lock protection. Update #2797.
* score: Fix _MRSP_Initialize()Sebastian Huber2016-11-091-4/+4
| | | | | The ceiling priorities must be initialized by scheduler index. Do not confuse it with a processor index.
* mpci: Use the first scheduler for MPCISebastian Huber2016-11-092-2/+2
| | | | Avoid use of processor index 0 which may have no scheduler assigned.
* score: Inline some SMP lock operations by defaultSebastian Huber2016-11-092-11/+22
| | | | | | | | | The SMP ticket lock release turned out to be suitable for inlining, e.g. a hand full of instructions, no branches. The changes in the screen files do not reflect the changes due to this commit. However, they are now up to date. Obtained on a T4240 running at 1.5GHz using GCC 7.0.0 20161108..
* Provide kernel space header filesSebastian Huber2016-11-081-0/+1
| | | | | These kernel space header files must be provided for Newlib 172e2050d95b41861db858dd9bc43a3fb4a28987.
* sparc: Provide _CPU_Get_thread_executing()Sebastian Huber2016-11-071-0/+4
|
* score: Add optional _CPU_Get_thread_executing()Sebastian Huber2016-11-073-6/+27
|
* score: Prevent assignment to _Thread_ExecutingSebastian Huber2016-11-071-1/+1
|
* score: Add <rtems/score/cpuimpl.h>Sebastian Huber2016-11-0751-0/+595
| | | | | | The aim of this file is to encapsulate CPU port implementation details. This helps to hide implementation details from <rtems.h> which indirectly includes <rtems/score/cpu.h>.
* score: Optimize self-contained mutexesSebastian Huber2016-11-042-32/+85
|
* score: Use non-inline thread queue lock opsSebastian Huber2016-11-042-19/+99
| | | | | | This reduces the code size and helps to reduce the amount of testing. Hot paths can use the _Thread_queue_Queue_acquire_critical() and _Thread_queue_Queue_release_critical() functions which are still inline.
* score: Provide inline variants for ISR lock opsSebastian Huber2016-11-041-0/+32
|
* score: Default to non-inline SMP lock opsSebastian Huber2016-11-042-90/+71
| | | | | Use non-inline SMP lock acquire and release operations by default. Provide inline variants for the hot spots, e.g. mutex acquire/release.
* score: Fix _Scheduler_Try_to_schedule_node()Sebastian Huber2016-11-041-10/+14
| | | | | In case the thread is scheduled and the sticky level is greater than one, then we must use an idle thread for correctness of MrsP.
* score: Add _Watchdog_Ticks_from_sbintimeSebastian Huber2016-11-031-0/+12
| | | | Necessary to support a network stack update to FreeBSD 12.
* score: Delete unused _Scheduler_Is_id_valid()Sebastian Huber2016-11-031-10/+0
|
* score: Conditionally enable thread resource countSebastian Huber2016-11-034-0/+22
| | | | | Maintain the thread resource count only in debug configurations. This is a performance optimization for non-debug configurations.
* score: Relax _Scheduler_Set() restrictionsSebastian Huber2016-11-031-4/+5
| | | | | | No longer unconditionally prevent scheduler changes if the thread owns resources. Prevent a scheduler change only in case other threads wait for the resource.
* score: Introduce thread resource count methodsSebastian Huber2016-11-034-13/+27
| | | | | This makes it easier to conditionally enable/disable the thread resource count usage.
* score: Simplify yield and unblock scheduler opsSebastian Huber2016-11-0222-173/+123
| | | | Update #2556.
* score: Introduce Thread_Scheduler_control::homeSebastian Huber2016-11-0211-56/+31
| | | | | | | | Replace Thread_Scheduler_control::control and Thread_Scheduler_control::own_control with new Thread_Scheduler_control::home. Update #2556.
* score: Delete Thread_Scheduler_control::own_nodeSebastian Huber2016-11-0212-48/+31
| | | | Update #2556.
* score: Delete Thread_Scheduler_control::nodeSebastian Huber2016-11-029-30/+12
| | | | Update #2556.
* score: Delete Scheduler_Node::accepts_helpSebastian Huber2016-11-023-13/+1
| | | | Update #2556.