summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/schedulersmpimpl.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-06-29 09:44:16 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-06-29 11:15:50 +0200
commit15dbc710b62084e101bd2a46b3faa1ddc7ee417e (patch)
treed71a7668156a8713d01a3c30413fd2115d409293 /cpukit/score/include/rtems/score/schedulersmpimpl.h
parentsmptests: Split smpscheduler03 (diff)
downloadrtems-15dbc710b62084e101bd2a46b3faa1ddc7ee417e.tar.bz2
score: Add red-black tree node to Scheduler_Node
In SMP configurations, add a red-black tree node to Scheduler_Node to enable an EDF scheduler implementation. Update #3056.
Diffstat (limited to '')
-rw-r--r--cpukit/score/include/rtems/score/schedulersmpimpl.h18
1 files changed, 9 insertions, 9 deletions
diff --git a/cpukit/score/include/rtems/score/schedulersmpimpl.h b/cpukit/score/include/rtems/score/schedulersmpimpl.h
index d91a62c3ca..b90c359d4c 100644
--- a/cpukit/score/include/rtems/score/schedulersmpimpl.h
+++ b/cpukit/score/include/rtems/score/schedulersmpimpl.h
@@ -608,9 +608,9 @@ static inline Scheduler_Node *_Scheduler_SMP_Get_lowest_scheduled(
(void) filter;
(void) order;
- _Assert( &lowest_scheduled->Node != _Chain_Tail( scheduled ) );
+ _Assert( &lowest_scheduled->Node.Chain != _Chain_Tail( scheduled ) );
_Assert(
- _Chain_Next( &lowest_scheduled->Node ) == _Chain_Tail( scheduled )
+ _Chain_Next( &lowest_scheduled->Node.Chain ) == _Chain_Tail( scheduled )
);
return lowest_scheduled;
@@ -708,7 +708,7 @@ static inline bool _Scheduler_SMP_Enqueue_ordered(
lowest_scheduled = ( *get_lowest_scheduled )( context, node, order );
- if ( ( *order )( &node->Node, &lowest_scheduled->Node ) ) {
+ if ( ( *order )( &node->Node.Chain, &lowest_scheduled->Node.Chain ) ) {
_Scheduler_SMP_Enqueue_to_scheduled(
context,
node,
@@ -769,7 +769,7 @@ static inline bool _Scheduler_SMP_Enqueue_scheduled_ordered(
*/
if (
node->sticky_level > 0
- && ( *order )( &node->Node, &highest_ready->Node )
+ && ( *order )( &node->Node.Chain, &highest_ready->Node.Chain )
) {
( *insert_scheduled )( context, node );
@@ -859,7 +859,7 @@ static inline void _Scheduler_SMP_Extract_from_scheduled(
Scheduler_Node *node
)
{
- _Chain_Extract_unprotected( &node->Node );
+ _Chain_Extract_unprotected( &node->Node.Chain );
}
static inline void _Scheduler_SMP_Schedule_highest_ready(
@@ -1109,7 +1109,7 @@ static inline void _Scheduler_SMP_Insert_scheduled_lifo(
_Chain_Insert_ordered_unprotected(
&self->Scheduled,
- &node_to_insert->Node,
+ &node_to_insert->Node.Chain,
_Scheduler_SMP_Insert_priority_lifo_order
);
}
@@ -1123,7 +1123,7 @@ static inline void _Scheduler_SMP_Insert_scheduled_fifo(
_Chain_Insert_ordered_unprotected(
&self->Scheduled,
- &node_to_insert->Node,
+ &node_to_insert->Node.Chain,
_Scheduler_SMP_Insert_priority_fifo_order
);
}
@@ -1154,7 +1154,7 @@ static inline bool _Scheduler_SMP_Ask_for_help(
node_state = _Scheduler_SMP_Node_state( node );
if ( node_state == SCHEDULER_SMP_NODE_BLOCKED ) {
- if ( ( *order )( &node->Node, &lowest_scheduled->Node ) ) {
+ if ( ( *order )( &node->Node.Chain, &lowest_scheduled->Node.Chain ) ) {
_Thread_Scheduler_cancel_need_for_help(
thread,
_Thread_Get_CPU( thread )
@@ -1297,7 +1297,7 @@ static inline void _Scheduler_SMP_Add_processor(
if ( ( *has_ready )( &self->Base ) ) {
( *enqueue_scheduled_fifo )( &self->Base, node );
} else {
- _Chain_Append_unprotected( &self->Scheduled, &node->Node );
+ _Chain_Append_unprotected( &self->Scheduled, &node->Node.Chain );
}
}