diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-09-03 09:31:19 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-09-03 09:37:31 +0200 |
commit | 3aad9d9b08950f132e5fb285ef8e9cda2d1b3844 (patch) | |
tree | f8de36da9699904afb62250069bc1ffd56839157 /cpukit/score | |
parent | bsps: BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN (diff) | |
download | rtems-3aad9d9b08950f132e5fb285ef8e9cda2d1b3844.tar.bz2 |
score: Generalize SMP scheduler block support
Add extract from scheduled function to the _Scheduler_SMP_Block()
operation. This allows a scheduler implementation to do extra work in
case a scheduled node is blocked.
Diffstat (limited to 'cpukit/score')
-rw-r--r-- | cpukit/score/src/scheduleredfsmp.c | 3 | ||||
-rw-r--r-- | cpukit/score/src/schedulerpriorityaffinitysmp.c | 1 | ||||
-rw-r--r-- | cpukit/score/src/schedulerprioritysmp.c | 1 | ||||
-rw-r--r-- | cpukit/score/src/schedulersimplesmp.c | 1 | ||||
-rw-r--r-- | cpukit/score/src/schedulerstrongapa.c | 1 |
5 files changed, 6 insertions, 1 deletions
diff --git a/cpukit/score/src/scheduleredfsmp.c b/cpukit/score/src/scheduleredfsmp.c index 0980a336cc..66e9a8ef36 100644 --- a/cpukit/score/src/scheduleredfsmp.c +++ b/cpukit/score/src/scheduleredfsmp.c @@ -311,7 +311,7 @@ static inline void _Scheduler_EDF_SMP_Move_from_scheduled_to_ready( { Priority_Control insert_priority; - _Chain_Extract_unprotected( &scheduled_to_ready->Node.Chain ); + _Scheduler_SMP_Extract_from_scheduled( context, scheduled_to_ready ); insert_priority = _Scheduler_SMP_Node_priority( scheduled_to_ready ); _Scheduler_EDF_SMP_Insert_ready( context, @@ -403,6 +403,7 @@ void _Scheduler_EDF_SMP_Block( context, thread, node, + _Scheduler_SMP_Extract_from_scheduled, _Scheduler_EDF_SMP_Extract_from_ready, _Scheduler_EDF_SMP_Get_highest_ready, _Scheduler_EDF_SMP_Move_from_ready_to_scheduled, diff --git a/cpukit/score/src/schedulerpriorityaffinitysmp.c b/cpukit/score/src/schedulerpriorityaffinitysmp.c index 4808c84c3f..a82106566b 100644 --- a/cpukit/score/src/schedulerpriorityaffinitysmp.c +++ b/cpukit/score/src/schedulerpriorityaffinitysmp.c @@ -174,6 +174,7 @@ void _Scheduler_priority_affinity_SMP_Block( context, thread, node, + _Scheduler_SMP_Extract_from_scheduled, _Scheduler_priority_SMP_Extract_from_ready, _Scheduler_priority_affinity_SMP_Get_highest_ready, _Scheduler_priority_SMP_Move_from_ready_to_scheduled, diff --git a/cpukit/score/src/schedulerprioritysmp.c b/cpukit/score/src/schedulerprioritysmp.c index 205d3257ca..6479563eb0 100644 --- a/cpukit/score/src/schedulerprioritysmp.c +++ b/cpukit/score/src/schedulerprioritysmp.c @@ -102,6 +102,7 @@ void _Scheduler_priority_SMP_Block( context, thread, node, + _Scheduler_SMP_Extract_from_scheduled, _Scheduler_priority_SMP_Extract_from_ready, _Scheduler_priority_SMP_Get_highest_ready, _Scheduler_priority_SMP_Move_from_ready_to_scheduled, diff --git a/cpukit/score/src/schedulersimplesmp.c b/cpukit/score/src/schedulersimplesmp.c index 4ab4987c3a..e0f56ffe67 100644 --- a/cpukit/score/src/schedulersimplesmp.c +++ b/cpukit/score/src/schedulersimplesmp.c @@ -174,6 +174,7 @@ void _Scheduler_simple_SMP_Block( context, thread, node, + _Scheduler_SMP_Extract_from_scheduled, _Scheduler_simple_SMP_Extract_from_ready, _Scheduler_simple_SMP_Get_highest_ready, _Scheduler_simple_SMP_Move_from_ready_to_scheduled, diff --git a/cpukit/score/src/schedulerstrongapa.c b/cpukit/score/src/schedulerstrongapa.c index 19d4ebe348..865c11832e 100644 --- a/cpukit/score/src/schedulerstrongapa.c +++ b/cpukit/score/src/schedulerstrongapa.c @@ -234,6 +234,7 @@ void _Scheduler_strong_APA_Block( context, the_thread, node, + _Scheduler_SMP_Extract_from_scheduled, _Scheduler_strong_APA_Extract_from_ready, _Scheduler_strong_APA_Get_highest_ready, _Scheduler_strong_APA_Move_from_ready_to_scheduled, |