summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-07-05 15:14:26 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-07-07 07:56:24 +0200
commit197a614209beb9359e127151c219722f56054677 (patch)
tree2e4bad2ff74c8d4a4eb95bfcc571011faa0ad998 /cpukit/score/src
parentscore: Fix default set affinity (diff)
downloadrtems-197a614209beb9359e127151c219722f56054677.tar.bz2
score: Add scheduler node to set affinity op
Update #3059.
Diffstat (limited to 'cpukit/score/src')
-rw-r--r--cpukit/score/src/schedulerdefaultsetaffinity.c2
-rw-r--r--cpukit/score/src/schedulerpriorityaffinitysmp.c16
-rw-r--r--cpukit/score/src/schedulersetaffinity.c4
3 files changed, 8 insertions, 14 deletions
diff --git a/cpukit/score/src/schedulerdefaultsetaffinity.c b/cpukit/score/src/schedulerdefaultsetaffinity.c
index 940d0939dc..bd8fc95099 100644
--- a/cpukit/score/src/schedulerdefaultsetaffinity.c
+++ b/cpukit/score/src/schedulerdefaultsetaffinity.c
@@ -24,12 +24,14 @@
bool _Scheduler_default_Set_affinity(
const Scheduler_Control *scheduler,
Thread_Control *thread,
+ Scheduler_Node *node,
const Processor_mask *affinity
)
{
return _Scheduler_default_Set_affinity_body(
scheduler,
thread,
+ node,
affinity
);
}
diff --git a/cpukit/score/src/schedulerpriorityaffinitysmp.c b/cpukit/score/src/schedulerpriorityaffinitysmp.c
index 6cc480d5c4..99938cdc56 100644
--- a/cpukit/score/src/schedulerpriorityaffinitysmp.c
+++ b/cpukit/score/src/schedulerpriorityaffinitysmp.c
@@ -60,19 +60,6 @@ static bool _Scheduler_priority_affinity_SMP_Insert_priority_fifo_order(
&& _Scheduler_SMP_Insert_priority_fifo_order( to_insert, next );
}
-/*
- * This method returns the scheduler node for the specified thread
- * as a scheduler specific type.
- */
-static Scheduler_priority_affinity_SMP_Node *
-_Scheduler_priority_affinity_SMP_Thread_get_node(
- Thread_Control *thread
-)
-{
- return (Scheduler_priority_affinity_SMP_Node *)
- _Thread_Scheduler_get_home_node( thread );
-}
-
static Scheduler_priority_affinity_SMP_Node *
_Scheduler_priority_affinity_SMP_Node_downcast(
Scheduler_Node *node
@@ -614,6 +601,7 @@ Thread_Control *_Scheduler_priority_affinity_SMP_Remove_processor(
bool _Scheduler_priority_affinity_SMP_Set_affinity(
const Scheduler_Control *scheduler,
Thread_Control *thread,
+ Scheduler_Node *node_base,
const Processor_mask *affinity
)
{
@@ -631,7 +619,7 @@ bool _Scheduler_priority_affinity_SMP_Set_affinity(
return false;
}
- node = _Scheduler_priority_affinity_SMP_Thread_get_node( thread );
+ node = _Scheduler_priority_affinity_SMP_Node_downcast( node_base );
/*
* The old and new set are the same, there is no point in
diff --git a/cpukit/score/src/schedulersetaffinity.c b/cpukit/score/src/schedulersetaffinity.c
index 93ed851b9e..3d354800b2 100644
--- a/cpukit/score/src/schedulersetaffinity.c
+++ b/cpukit/score/src/schedulersetaffinity.c
@@ -27,6 +27,7 @@ bool _Scheduler_Set_affinity(
Processor_mask affinity;
Processor_mask_Copy_status status;
const Scheduler_Control *scheduler;
+ Scheduler_Node *node;
ISR_lock_Context lock_context;
bool ok;
@@ -38,10 +39,12 @@ bool _Scheduler_Set_affinity(
scheduler = _Thread_Scheduler_get_home( the_thread );
_Scheduler_Acquire_critical( scheduler, &lock_context );
+ node = _Thread_Scheduler_get_home_node( the_thread );
#if defined(RTEMS_SMP)
ok = ( *scheduler->Operations.set_affinity )(
scheduler,
the_thread,
+ node,
&affinity
);
@@ -52,6 +55,7 @@ bool _Scheduler_Set_affinity(
ok = _Scheduler_default_Set_affinity_body(
scheduler,
the_thread,
+ node,
&affinity
);
#endif