From 9d82150f5a83e8dcf985de26799f99f7c46ec515 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 26 Apr 2021 11:22:39 +0200 Subject: Return status code for _Scheduler_Set_affinity() This avoids having conditional statements to get the API-specific status code. --- cpukit/score/src/schedulerdefaultsetaffinity.c | 2 +- cpukit/score/src/scheduleredfsmp.c | 6 +++--- cpukit/score/src/schedulerpriorityaffinitysmp.c | 8 ++++---- cpukit/score/src/schedulersetaffinity.c | 20 ++++++++++---------- 4 files changed, 18 insertions(+), 18 deletions(-) (limited to 'cpukit/score') diff --git a/cpukit/score/src/schedulerdefaultsetaffinity.c b/cpukit/score/src/schedulerdefaultsetaffinity.c index 6399b1e352..7583fc1c8f 100644 --- a/cpukit/score/src/schedulerdefaultsetaffinity.c +++ b/cpukit/score/src/schedulerdefaultsetaffinity.c @@ -22,7 +22,7 @@ #include -bool _Scheduler_default_Set_affinity( +Status_Control _Scheduler_default_Set_affinity( const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node, diff --git a/cpukit/score/src/scheduleredfsmp.c b/cpukit/score/src/scheduleredfsmp.c index b8b1d9de95..13d512118e 100644 --- a/cpukit/score/src/scheduleredfsmp.c +++ b/cpukit/score/src/scheduleredfsmp.c @@ -723,7 +723,7 @@ void _Scheduler_EDF_SMP_Unpin( node->pinning_ready_queue_index = 0; } -bool _Scheduler_EDF_SMP_Set_affinity( +Status_Control _Scheduler_EDF_SMP_Set_affinity( const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node_base, @@ -739,7 +739,7 @@ bool _Scheduler_EDF_SMP_Set_affinity( _Processor_mask_And( &local_affinity, &context->Processors, affinity ); if ( _Processor_mask_Is_zero( &local_affinity ) ) { - return false; + return STATUS_INVALID_NUMBER; } if ( _Processor_mask_Is_equal( affinity, &_SMP_Online_processors ) ) { @@ -766,5 +766,5 @@ bool _Scheduler_EDF_SMP_Set_affinity( ); } - return true; + return STATUS_SUCCESSFUL; } diff --git a/cpukit/score/src/schedulerpriorityaffinitysmp.c b/cpukit/score/src/schedulerpriorityaffinitysmp.c index 2511b6bbed..10f6808a75 100644 --- a/cpukit/score/src/schedulerpriorityaffinitysmp.c +++ b/cpukit/score/src/schedulerpriorityaffinitysmp.c @@ -541,7 +541,7 @@ Thread_Control *_Scheduler_priority_affinity_SMP_Remove_processor( ); } -bool _Scheduler_priority_affinity_SMP_Set_affinity( +Status_Control _Scheduler_priority_affinity_SMP_Set_affinity( const Scheduler_Control *scheduler, Thread_Control *thread, Scheduler_Node *node_base, @@ -557,7 +557,7 @@ bool _Scheduler_priority_affinity_SMP_Set_affinity( _Processor_mask_And( &my_affinity, &context->Processors, affinity ); if ( _Processor_mask_Count( &my_affinity ) == 0 ) { - return false; + return STATUS_INVALID_NUMBER; } node = _Scheduler_priority_affinity_SMP_Node_downcast( node_base ); @@ -567,7 +567,7 @@ bool _Scheduler_priority_affinity_SMP_Set_affinity( * doing anything. */ if ( _Processor_mask_Is_equal( &node->Affinity, affinity ) ) - return true; + return STATUS_SUCCESSFUL; current_state = thread->current_state; @@ -584,5 +584,5 @@ bool _Scheduler_priority_affinity_SMP_Set_affinity( (void) _Scheduler_priority_affinity_SMP_Unblock( scheduler, thread, &node->Base.Base.Base ); } - return true; + return STATUS_SUCCESSFUL; } diff --git a/cpukit/score/src/schedulersetaffinity.c b/cpukit/score/src/schedulersetaffinity.c index 8d16af3ed3..24d13feee7 100644 --- a/cpukit/score/src/schedulersetaffinity.c +++ b/cpukit/score/src/schedulersetaffinity.c @@ -27,22 +27,22 @@ #include -bool _Scheduler_Set_affinity( +Status_Control _Scheduler_Set_affinity( Thread_Control *the_thread, size_t cpusetsize, const cpu_set_t *cpuset ) { Processor_mask affinity; - Processor_mask_Copy_status status; + Processor_mask_Copy_status copy_status; const Scheduler_Control *scheduler; Scheduler_Node *node; ISR_lock_Context lock_context; - bool ok; + Status_Control status; - status = _Processor_mask_From_cpu_set_t( &affinity, cpusetsize, cpuset ); - if ( !_Processor_mask_Is_at_most_partial_loss( status ) ) { - return false; + copy_status = _Processor_mask_From_cpu_set_t( &affinity, cpusetsize, cpuset ); + if ( !_Processor_mask_Is_at_most_partial_loss( copy_status ) ) { + return STATUS_INVALID_NUMBER; } /* @@ -57,18 +57,18 @@ bool _Scheduler_Set_affinity( node = _Thread_Scheduler_get_home_node( the_thread ); #if defined(RTEMS_SMP) - ok = ( *scheduler->Operations.set_affinity )( + status = ( *scheduler->Operations.set_affinity )( scheduler, the_thread, node, &affinity ); - if ( ok ) { + if ( status == STATUS_SUCCESSFUL ) { _Processor_mask_Assign( &the_thread->Scheduler.Affinity, &affinity ); } #else - ok = _Scheduler_default_Set_affinity_body( + status = _Scheduler_default_Set_affinity_body( scheduler, the_thread, node, @@ -77,5 +77,5 @@ bool _Scheduler_Set_affinity( #endif _Scheduler_Release_critical( scheduler, &lock_context ); - return ok; + return status; } -- cgit v1.2.3