diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-06-29 09:44:16 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-06-29 11:15:50 +0200 |
commit | 15dbc710b62084e101bd2a46b3faa1ddc7ee417e (patch) | |
tree | d71a7668156a8713d01a3c30413fd2115d409293 /cpukit/score/include/rtems/score/schedulersmpimpl.h | |
parent | smptests: Split smpscheduler03 (diff) | |
download | rtems-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.h | 18 |
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 ); } } |