summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/scheduleredfsmp.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-09-03 09:31:19 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-09-03 09:37:31 +0200
commit3aad9d9b08950f132e5fb285ef8e9cda2d1b3844 (patch)
treef8de36da9699904afb62250069bc1ffd56839157 /cpukit/score/src/scheduleredfsmp.c
parentbsps: BSP_INTERRUPT_STACK_AT_WORK_AREA_BEGIN (diff)
downloadrtems-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/src/scheduleredfsmp.c')
-rw-r--r--cpukit/score/src/scheduleredfsmp.c3
1 files changed, 2 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,