summaryrefslogtreecommitdiffstats
path: root/cpukit/score
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-04-26 11:22:39 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-04-27 19:40:13 +0200
commit9d82150f5a83e8dcf985de26799f99f7c46ec515 (patch)
treefe568eaa83c10f1bfa6374dbe92649fac93681b6 /cpukit/score
parentrtems: Change rtems_task_get_affinity() status (diff)
downloadrtems-9d82150f5a83e8dcf985de26799f99f7c46ec515.tar.bz2
Return status code for _Scheduler_Set_affinity()
This avoids having conditional statements to get the API-specific status code.
Diffstat (limited to 'cpukit/score')
-rw-r--r--cpukit/score/src/schedulerdefaultsetaffinity.c2
-rw-r--r--cpukit/score/src/scheduleredfsmp.c6
-rw-r--r--cpukit/score/src/schedulerpriorityaffinitysmp.c8
-rw-r--r--cpukit/score/src/schedulersetaffinity.c20
4 files changed, 18 insertions, 18 deletions
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 <rtems/score/schedulerimpl.h>
-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 <rtems/score/schedulerimpl.h>
-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;
}