diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-10-31 09:13:35 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-11-02 10:05:45 +0100 |
commit | 63e2ca1b8b0a651a733d4ac3e0517397d0681214 (patch) | |
tree | 327686940bb25d42f42c83d4b73b8890f7e52ad6 /cpukit/score/src | |
parent | score: Introduce Thread_Scheduler_control::home (diff) | |
download | rtems-63e2ca1b8b0a651a733d4ac3e0517397d0681214.tar.bz2 |
score: Simplify yield and unblock scheduler ops
Update #2556.
Diffstat (limited to 'cpukit/score/src')
-rw-r--r-- | cpukit/score/src/schedulercbsunblock.c | 4 | ||||
-rw-r--r-- | cpukit/score/src/scheduleredfunblock.c | 4 | ||||
-rw-r--r-- | cpukit/score/src/scheduleredfyield.c | 4 | ||||
-rw-r--r-- | cpukit/score/src/schedulerpriorityaffinitysmp.c | 27 | ||||
-rw-r--r-- | cpukit/score/src/schedulerprioritysmp.c | 26 | ||||
-rw-r--r-- | cpukit/score/src/schedulerpriorityunblock.c | 4 | ||||
-rw-r--r-- | cpukit/score/src/schedulerpriorityyield.c | 4 | ||||
-rw-r--r-- | cpukit/score/src/schedulersimplesmp.c | 26 | ||||
-rw-r--r-- | cpukit/score/src/schedulersimpleunblock.c | 4 | ||||
-rw-r--r-- | cpukit/score/src/schedulersimpleyield.c | 4 | ||||
-rw-r--r-- | cpukit/score/src/schedulerstrongapa.c | 26 |
11 files changed, 54 insertions, 79 deletions
diff --git a/cpukit/score/src/schedulercbsunblock.c b/cpukit/score/src/schedulercbsunblock.c index 63abc12c70..be9696eed8 100644 --- a/cpukit/score/src/schedulercbsunblock.c +++ b/cpukit/score/src/schedulercbsunblock.c @@ -25,7 +25,7 @@ #include <rtems/score/threadimpl.h> #include <rtems/score/watchdogimpl.h> -Scheduler_Void_or_thread _Scheduler_CBS_Unblock( +Scheduler_Void_or_bool _Scheduler_CBS_Unblock( const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node @@ -68,5 +68,5 @@ Scheduler_Void_or_thread _Scheduler_CBS_Unblock( } _Scheduler_EDF_Unblock( scheduler, the_thread, &the_node->Base.Base ); - SCHEDULER_RETURN_VOID_OR_NULL; + SCHEDULER_RETURN_VOID_OR_BOOL; } diff --git a/cpukit/score/src/scheduleredfunblock.c b/cpukit/score/src/scheduleredfunblock.c index 5b3fbb3943..45653396af 100644 --- a/cpukit/score/src/scheduleredfunblock.c +++ b/cpukit/score/src/scheduleredfunblock.c @@ -22,7 +22,7 @@ #include <rtems/score/schedulerimpl.h> #include <rtems/score/thread.h> -Scheduler_Void_or_thread _Scheduler_EDF_Unblock( +Scheduler_Void_or_bool _Scheduler_EDF_Unblock( const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node @@ -60,5 +60,5 @@ Scheduler_Void_or_thread _Scheduler_EDF_Unblock( ); } - SCHEDULER_RETURN_VOID_OR_NULL; + SCHEDULER_RETURN_VOID_OR_BOOL; } diff --git a/cpukit/score/src/scheduleredfyield.c b/cpukit/score/src/scheduleredfyield.c index a54b1f5c72..dfcb4d3569 100644 --- a/cpukit/score/src/scheduleredfyield.c +++ b/cpukit/score/src/scheduleredfyield.c @@ -21,7 +21,7 @@ #include <rtems/score/scheduleredfimpl.h> -Scheduler_Void_or_thread _Scheduler_EDF_Yield( +Scheduler_Void_or_bool _Scheduler_EDF_Yield( const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node @@ -37,5 +37,5 @@ Scheduler_Void_or_thread _Scheduler_EDF_Yield( _Scheduler_EDF_Enqueue( context, the_node, the_node->priority ); _Scheduler_EDF_Schedule_body( scheduler, the_thread, true ); - SCHEDULER_RETURN_VOID_OR_NULL; + SCHEDULER_RETURN_VOID_OR_BOOL; } diff --git a/cpukit/score/src/schedulerpriorityaffinitysmp.c b/cpukit/score/src/schedulerpriorityaffinitysmp.c index 9c8fd3cd51..3ca3b73f10 100644 --- a/cpukit/score/src/schedulerpriorityaffinitysmp.c +++ b/cpukit/score/src/schedulerpriorityaffinitysmp.c @@ -270,16 +270,14 @@ static Scheduler_Node * _Scheduler_priority_affinity_SMP_Get_lowest_scheduled( * _Scheduler_priority_affinity_SMP_Get_lowest_scheduled into * _Scheduler_SMP_Enqueue_ordered. */ -static Thread_Control *_Scheduler_priority_affinity_SMP_Enqueue_fifo( +static bool _Scheduler_priority_affinity_SMP_Enqueue_fifo( Scheduler_Context *context, - Scheduler_Node *node, - Thread_Control *needs_help + Scheduler_Node *node ) { return _Scheduler_SMP_Enqueue_ordered( context, node, - needs_help, _Scheduler_priority_affinity_SMP_Insert_priority_fifo_order, _Scheduler_priority_SMP_Insert_ready_fifo, _Scheduler_SMP_Insert_scheduled_fifo, @@ -354,14 +352,14 @@ static void _Scheduler_priority_affinity_SMP_Check_for_migrations( /* * This is the public scheduler specific Unblock operation. */ -Thread_Control *_Scheduler_priority_affinity_SMP_Unblock( +bool _Scheduler_priority_affinity_SMP_Unblock( const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node ) { Scheduler_Context *context = _Scheduler_Get_context( scheduler ); - Thread_Control *needs_help; + bool needs_help; needs_help = _Scheduler_SMP_Unblock( context, @@ -383,10 +381,9 @@ Thread_Control *_Scheduler_priority_affinity_SMP_Unblock( * This is unique to this scheduler because it passes scheduler specific * get_lowest_scheduled helper to _Scheduler_SMP_Enqueue_ordered. */ -static Thread_Control *_Scheduler_priority_affinity_SMP_Enqueue_ordered( +static bool _Scheduler_priority_affinity_SMP_Enqueue_ordered( Scheduler_Context *context, Scheduler_Node *node, - Thread_Control *needs_help, Chain_Node_order order, Scheduler_SMP_Insert insert_ready, Scheduler_SMP_Insert insert_scheduled @@ -395,7 +392,6 @@ static Thread_Control *_Scheduler_priority_affinity_SMP_Enqueue_ordered( return _Scheduler_SMP_Enqueue_ordered( context, node, - needs_help, order, insert_ready, insert_scheduled, @@ -410,16 +406,14 @@ static Thread_Control *_Scheduler_priority_affinity_SMP_Enqueue_ordered( * to _Scheduler_priority_affinity_SMP_Enqueue_ordered() which * invokes a scheduler unique get_lowest_scheduled helper. */ -static Thread_Control *_Scheduler_priority_affinity_SMP_Enqueue_lifo( +static bool _Scheduler_priority_affinity_SMP_Enqueue_lifo( Scheduler_Context *context, - Scheduler_Node *node, - Thread_Control *needs_help + Scheduler_Node *node ) { return _Scheduler_priority_affinity_SMP_Enqueue_ordered( context, node, - needs_help, _Scheduler_priority_affinity_SMP_Insert_priority_lifo_order, _Scheduler_priority_SMP_Insert_ready_lifo, _Scheduler_SMP_Insert_scheduled_lifo @@ -431,8 +425,7 @@ static Thread_Control *_Scheduler_priority_affinity_SMP_Enqueue_lifo( * invoke _Scheduler_SMP_Enqueue_scheduled_ordered() with * this scheduler's get_highest_ready() helper. */ -static Thread_Control * -_Scheduler_priority_affinity_SMP_Enqueue_scheduled_ordered( +static bool _Scheduler_priority_affinity_SMP_Enqueue_scheduled_ordered( Scheduler_Context *context, Scheduler_Node *node, Chain_Node_order order, @@ -458,7 +451,7 @@ _Scheduler_priority_affinity_SMP_Enqueue_scheduled_ordered( * to _Scheduler_priority_affinity_SMP_Enqueue_scheduled__ordered() which * invokes a scheduler unique get_lowest_scheduled helper. */ -static Thread_Control *_Scheduler_priority_affinity_SMP_Enqueue_scheduled_lifo( +static bool _Scheduler_priority_affinity_SMP_Enqueue_scheduled_lifo( Scheduler_Context *context, Scheduler_Node *node ) @@ -477,7 +470,7 @@ static Thread_Control *_Scheduler_priority_affinity_SMP_Enqueue_scheduled_lifo( * to _Scheduler_priority_affinity_SMP_Enqueue_scheduled__ordered() which * invokes a scheduler unique get_lowest_scheduled helper. */ -static Thread_Control *_Scheduler_priority_affinity_SMP_Enqueue_scheduled_fifo( +static bool _Scheduler_priority_affinity_SMP_Enqueue_scheduled_fifo( Scheduler_Context *context, Scheduler_Node *node ) diff --git a/cpukit/score/src/schedulerprioritysmp.c b/cpukit/score/src/schedulerprioritysmp.c index fac2b6da7e..79b3d597a8 100644 --- a/cpukit/score/src/schedulerprioritysmp.c +++ b/cpukit/score/src/schedulerprioritysmp.c @@ -109,10 +109,9 @@ void _Scheduler_priority_SMP_Block( ); } -static Thread_Control *_Scheduler_priority_SMP_Enqueue_ordered( +static bool _Scheduler_priority_SMP_Enqueue_ordered( Scheduler_Context *context, Scheduler_Node *node, - Thread_Control *needs_help, Chain_Node_order order, Scheduler_SMP_Insert insert_ready, Scheduler_SMP_Insert insert_scheduled @@ -121,7 +120,6 @@ static Thread_Control *_Scheduler_priority_SMP_Enqueue_ordered( return _Scheduler_SMP_Enqueue_ordered( context, node, - needs_help, order, insert_ready, insert_scheduled, @@ -131,39 +129,35 @@ static Thread_Control *_Scheduler_priority_SMP_Enqueue_ordered( ); } -static Thread_Control *_Scheduler_priority_SMP_Enqueue_lifo( +static bool _Scheduler_priority_SMP_Enqueue_lifo( Scheduler_Context *context, - Scheduler_Node *node, - Thread_Control *needs_help + Scheduler_Node *node ) { return _Scheduler_priority_SMP_Enqueue_ordered( context, node, - needs_help, _Scheduler_SMP_Insert_priority_lifo_order, _Scheduler_priority_SMP_Insert_ready_lifo, _Scheduler_SMP_Insert_scheduled_lifo ); } -static Thread_Control *_Scheduler_priority_SMP_Enqueue_fifo( +static bool _Scheduler_priority_SMP_Enqueue_fifo( Scheduler_Context *context, - Scheduler_Node *node, - Thread_Control *needs_help + Scheduler_Node *node ) { return _Scheduler_priority_SMP_Enqueue_ordered( context, node, - needs_help, _Scheduler_SMP_Insert_priority_fifo_order, _Scheduler_priority_SMP_Insert_ready_fifo, _Scheduler_SMP_Insert_scheduled_fifo ); } -static Thread_Control *_Scheduler_priority_SMP_Enqueue_scheduled_ordered( +static bool _Scheduler_priority_SMP_Enqueue_scheduled_ordered( Scheduler_Context *context, Scheduler_Node *node, Chain_Node_order order, @@ -184,7 +178,7 @@ static Thread_Control *_Scheduler_priority_SMP_Enqueue_scheduled_ordered( ); } -static Thread_Control *_Scheduler_priority_SMP_Enqueue_scheduled_lifo( +static bool _Scheduler_priority_SMP_Enqueue_scheduled_lifo( Scheduler_Context *context, Scheduler_Node *node ) @@ -198,7 +192,7 @@ static Thread_Control *_Scheduler_priority_SMP_Enqueue_scheduled_lifo( ); } -static Thread_Control *_Scheduler_priority_SMP_Enqueue_scheduled_fifo( +static bool _Scheduler_priority_SMP_Enqueue_scheduled_fifo( Scheduler_Context *context, Scheduler_Node *node ) @@ -212,7 +206,7 @@ static Thread_Control *_Scheduler_priority_SMP_Enqueue_scheduled_fifo( ); } -Thread_Control *_Scheduler_priority_SMP_Unblock( +bool _Scheduler_priority_SMP_Unblock( const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node @@ -318,7 +312,7 @@ void _Scheduler_priority_SMP_Withdraw_node( ); } -Thread_Control *_Scheduler_priority_SMP_Yield( +bool _Scheduler_priority_SMP_Yield( const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node diff --git a/cpukit/score/src/schedulerpriorityunblock.c b/cpukit/score/src/schedulerpriorityunblock.c index 99d4310a4c..405b83f350 100644 --- a/cpukit/score/src/schedulerpriorityunblock.c +++ b/cpukit/score/src/schedulerpriorityunblock.c @@ -22,7 +22,7 @@ #include <rtems/score/schedulerpriorityimpl.h> -Scheduler_Void_or_thread _Scheduler_priority_Unblock ( +Scheduler_Void_or_bool _Scheduler_priority_Unblock ( const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node @@ -72,5 +72,5 @@ Scheduler_Void_or_thread _Scheduler_priority_Unblock ( _Scheduler_Update_heir( the_thread, priority == PRIORITY_PSEUDO_ISR ); } - SCHEDULER_RETURN_VOID_OR_NULL; + SCHEDULER_RETURN_VOID_OR_BOOL; } diff --git a/cpukit/score/src/schedulerpriorityyield.c b/cpukit/score/src/schedulerpriorityyield.c index 4d22dc9b4d..439877d0ce 100644 --- a/cpukit/score/src/schedulerpriorityyield.c +++ b/cpukit/score/src/schedulerpriorityyield.c @@ -21,7 +21,7 @@ #include <rtems/score/schedulerpriorityimpl.h> #include <rtems/score/threadimpl.h> -Scheduler_Void_or_thread _Scheduler_priority_Yield( +Scheduler_Void_or_bool _Scheduler_priority_Yield( const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node @@ -40,5 +40,5 @@ Scheduler_Void_or_thread _Scheduler_priority_Yield( _Scheduler_priority_Schedule_body( scheduler, the_thread, true ); - SCHEDULER_RETURN_VOID_OR_NULL; + SCHEDULER_RETURN_VOID_OR_BOOL; } diff --git a/cpukit/score/src/schedulersimplesmp.c b/cpukit/score/src/schedulersimplesmp.c index ed2d5d1b73..392d4ff78a 100644 --- a/cpukit/score/src/schedulersimplesmp.c +++ b/cpukit/score/src/schedulersimplesmp.c @@ -176,10 +176,9 @@ void _Scheduler_simple_SMP_Block( ); } -static Thread_Control *_Scheduler_simple_SMP_Enqueue_ordered( +static bool _Scheduler_simple_SMP_Enqueue_ordered( Scheduler_Context *context, Scheduler_Node *node, - Thread_Control *needs_help, Chain_Node_order order, Scheduler_SMP_Insert insert_ready, Scheduler_SMP_Insert insert_scheduled @@ -188,7 +187,6 @@ static Thread_Control *_Scheduler_simple_SMP_Enqueue_ordered( return _Scheduler_SMP_Enqueue_ordered( context, node, - needs_help, order, insert_ready, insert_scheduled, @@ -198,39 +196,35 @@ static Thread_Control *_Scheduler_simple_SMP_Enqueue_ordered( ); } -static Thread_Control *_Scheduler_simple_SMP_Enqueue_lifo( +static bool _Scheduler_simple_SMP_Enqueue_lifo( Scheduler_Context *context, - Scheduler_Node *node, - Thread_Control *needs_help + Scheduler_Node *node ) { return _Scheduler_simple_SMP_Enqueue_ordered( context, node, - needs_help, _Scheduler_SMP_Insert_priority_lifo_order, _Scheduler_simple_SMP_Insert_ready_lifo, _Scheduler_SMP_Insert_scheduled_lifo ); } -static Thread_Control *_Scheduler_simple_SMP_Enqueue_fifo( +static bool _Scheduler_simple_SMP_Enqueue_fifo( Scheduler_Context *context, - Scheduler_Node *node, - Thread_Control *needs_help + Scheduler_Node *node ) { return _Scheduler_simple_SMP_Enqueue_ordered( context, node, - needs_help, _Scheduler_SMP_Insert_priority_fifo_order, _Scheduler_simple_SMP_Insert_ready_fifo, _Scheduler_SMP_Insert_scheduled_fifo ); } -static Thread_Control *_Scheduler_simple_SMP_Enqueue_scheduled_ordered( +static bool _Scheduler_simple_SMP_Enqueue_scheduled_ordered( Scheduler_Context *context, Scheduler_Node *node, Chain_Node_order order, @@ -251,7 +245,7 @@ static Thread_Control *_Scheduler_simple_SMP_Enqueue_scheduled_ordered( ); } -static Thread_Control *_Scheduler_simple_SMP_Enqueue_scheduled_lifo( +static bool _Scheduler_simple_SMP_Enqueue_scheduled_lifo( Scheduler_Context *context, Scheduler_Node *node ) @@ -265,7 +259,7 @@ static Thread_Control *_Scheduler_simple_SMP_Enqueue_scheduled_lifo( ); } -static Thread_Control *_Scheduler_simple_SMP_Enqueue_scheduled_fifo( +static bool _Scheduler_simple_SMP_Enqueue_scheduled_fifo( Scheduler_Context *context, Scheduler_Node *node ) @@ -279,7 +273,7 @@ static Thread_Control *_Scheduler_simple_SMP_Enqueue_scheduled_fifo( ); } -Thread_Control *_Scheduler_simple_SMP_Unblock( +bool _Scheduler_simple_SMP_Unblock( const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node @@ -385,7 +379,7 @@ void _Scheduler_simple_SMP_Withdraw_node( ); } -Thread_Control *_Scheduler_simple_SMP_Yield( +bool _Scheduler_simple_SMP_Yield( const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node diff --git a/cpukit/score/src/schedulersimpleunblock.c b/cpukit/score/src/schedulersimpleunblock.c index 5eeaf6cc35..fe02ece5b2 100644 --- a/cpukit/score/src/schedulersimpleunblock.c +++ b/cpukit/score/src/schedulersimpleunblock.c @@ -21,7 +21,7 @@ #include <rtems/score/schedulersimpleimpl.h> #include <rtems/score/thread.h> -Scheduler_Void_or_thread _Scheduler_simple_Unblock( +Scheduler_Void_or_bool _Scheduler_simple_Unblock( const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node @@ -55,5 +55,5 @@ Scheduler_Void_or_thread _Scheduler_simple_Unblock( ); } - SCHEDULER_RETURN_VOID_OR_NULL; + SCHEDULER_RETURN_VOID_OR_BOOL; } diff --git a/cpukit/score/src/schedulersimpleyield.c b/cpukit/score/src/schedulersimpleyield.c index cfd123fb8c..c84f571933 100644 --- a/cpukit/score/src/schedulersimpleyield.c +++ b/cpukit/score/src/schedulersimpleyield.c @@ -20,7 +20,7 @@ #include <rtems/score/schedulersimpleimpl.h> -Scheduler_Void_or_thread _Scheduler_simple_Yield( +Scheduler_Void_or_bool _Scheduler_simple_Yield( const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node @@ -35,5 +35,5 @@ Scheduler_Void_or_thread _Scheduler_simple_Yield( _Scheduler_simple_Insert_priority_fifo( &context->Ready, the_thread ); _Scheduler_simple_Schedule_body( scheduler, the_thread, false ); - SCHEDULER_RETURN_VOID_OR_NULL; + SCHEDULER_RETURN_VOID_OR_BOOL; } diff --git a/cpukit/score/src/schedulerstrongapa.c b/cpukit/score/src/schedulerstrongapa.c index fce4541aa4..eaa352e793 100644 --- a/cpukit/score/src/schedulerstrongapa.c +++ b/cpukit/score/src/schedulerstrongapa.c @@ -235,10 +235,9 @@ void _Scheduler_strong_APA_Block( ); } -static Thread_Control *_Scheduler_strong_APA_Enqueue_ordered( +static bool _Scheduler_strong_APA_Enqueue_ordered( Scheduler_Context *context, Scheduler_Node *node, - Thread_Control *needs_help, Chain_Node_order order, Scheduler_SMP_Insert insert_ready, Scheduler_SMP_Insert insert_scheduled @@ -247,7 +246,6 @@ static Thread_Control *_Scheduler_strong_APA_Enqueue_ordered( return _Scheduler_SMP_Enqueue_ordered( context, node, - needs_help, order, insert_ready, insert_scheduled, @@ -257,39 +255,35 @@ static Thread_Control *_Scheduler_strong_APA_Enqueue_ordered( ); } -static Thread_Control *_Scheduler_strong_APA_Enqueue_lifo( +static bool _Scheduler_strong_APA_Enqueue_lifo( Scheduler_Context *context, - Scheduler_Node *node, - Thread_Control *needs_help + Scheduler_Node *node ) { return _Scheduler_strong_APA_Enqueue_ordered( context, node, - needs_help, _Scheduler_SMP_Insert_priority_lifo_order, _Scheduler_strong_APA_Insert_ready_lifo, _Scheduler_SMP_Insert_scheduled_lifo ); } -static Thread_Control *_Scheduler_strong_APA_Enqueue_fifo( +static bool _Scheduler_strong_APA_Enqueue_fifo( Scheduler_Context *context, - Scheduler_Node *node, - Thread_Control *needs_help + Scheduler_Node *node ) { return _Scheduler_strong_APA_Enqueue_ordered( context, node, - needs_help, _Scheduler_SMP_Insert_priority_fifo_order, _Scheduler_strong_APA_Insert_ready_fifo, _Scheduler_SMP_Insert_scheduled_fifo ); } -static Thread_Control *_Scheduler_strong_APA_Enqueue_scheduled_ordered( +static bool _Scheduler_strong_APA_Enqueue_scheduled_ordered( Scheduler_Context *context, Scheduler_Node *node, Chain_Node_order order, @@ -310,7 +304,7 @@ static Thread_Control *_Scheduler_strong_APA_Enqueue_scheduled_ordered( ); } -static Thread_Control *_Scheduler_strong_APA_Enqueue_scheduled_lifo( +static bool _Scheduler_strong_APA_Enqueue_scheduled_lifo( Scheduler_Context *context, Scheduler_Node *node ) @@ -324,7 +318,7 @@ static Thread_Control *_Scheduler_strong_APA_Enqueue_scheduled_lifo( ); } -static Thread_Control *_Scheduler_strong_APA_Enqueue_scheduled_fifo( +static bool _Scheduler_strong_APA_Enqueue_scheduled_fifo( Scheduler_Context *context, Scheduler_Node *node ) @@ -338,7 +332,7 @@ static Thread_Control *_Scheduler_strong_APA_Enqueue_scheduled_fifo( ); } -Thread_Control *_Scheduler_strong_APA_Unblock( +bool _Scheduler_strong_APA_Unblock( const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node @@ -444,7 +438,7 @@ void _Scheduler_strong_APA_Withdraw_node( ); } -Thread_Control *_Scheduler_strong_APA_Yield( +bool _Scheduler_strong_APA_Yield( const Scheduler_Control *scheduler, Thread_Control *the_thread, Scheduler_Node *node |