summaryrefslogtreecommitdiffstats
path: root/cpukit/score
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-10-27 08:35:22 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-11-23 11:00:28 +0100
commit6d20f0c5257164d8ec8127e3e55a1686b7dba8d1 (patch)
treef6dc441d25e8f9141adc0b2cfc8ff05eda0d40a7 /cpukit/score
parentscore: Rework idle handling in SMP schedulers (diff)
downloadrtems-6d20f0c5257164d8ec8127e3e55a1686b7dba8d1.tar.bz2
score: Add node to insert to Chain_Node_order
This allows to use additional members of the nodes for comparision. Update #4534.
Diffstat (limited to 'cpukit/score')
-rw-r--r--cpukit/score/src/coremsginsert.c6
-rw-r--r--cpukit/score/src/schedulerpriorityaffinitysmp.c6
2 files changed, 8 insertions, 4 deletions
diff --git a/cpukit/score/src/coremsginsert.c b/cpukit/score/src/coremsginsert.c
index 14b023d9e1..d9e88ae0eb 100644
--- a/cpukit/score/src/coremsginsert.c
+++ b/cpukit/score/src/coremsginsert.c
@@ -24,14 +24,16 @@
#if defined(RTEMS_SCORE_COREMSG_ENABLE_MESSAGE_PRIORITY)
static bool _CORE_message_queue_Order(
- const void *left,
+ const void *key,
+ const Chain_Node *left,
const Chain_Node *right
)
{
const int *left_priority;
const CORE_message_queue_Buffer *right_message;
- left_priority = (const int *) left;
+ (void) left;
+ left_priority = (const int *) key;
right_message = (const CORE_message_queue_Buffer *) right;
return *left_priority <
diff --git a/cpukit/score/src/schedulerpriorityaffinitysmp.c b/cpukit/score/src/schedulerpriorityaffinitysmp.c
index 7d971ef8d1..63d9ae47b1 100644
--- a/cpukit/score/src/schedulerpriorityaffinitysmp.c
+++ b/cpukit/score/src/schedulerpriorityaffinitysmp.c
@@ -52,12 +52,13 @@
*/
static bool _Scheduler_priority_affinity_SMP_Priority_less_equal(
- const void *to_insert,
+ const void *key,
+ const Chain_Node *to_insert,
const Chain_Node *next
)
{
return next != NULL
- && _Scheduler_SMP_Priority_less_equal( to_insert, next );
+ && _Scheduler_SMP_Priority_less_equal( key, to_insert, next );
}
static Scheduler_priority_affinity_SMP_Node *
@@ -326,6 +327,7 @@ static void _Scheduler_priority_affinity_SMP_Check_for_migrations(
if (
_Scheduler_SMP_Priority_less_equal(
&lowest_scheduled_priority,
+ &lowest_scheduled->Node.Chain,
&highest_ready->Node.Chain
)
) {