summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src/schedulergetaffinity.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-07-03 14:05:26 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-07-07 07:28:29 +0200
commit78515554fd110c9636c38501b699a5da125a5496 (patch)
tree527f8f413668a43a76697dca3e994691bddcaa22 /cpukit/score/src/schedulergetaffinity.c
parentscore: Add some processor mask functions (diff)
downloadrtems-78515554fd110c9636c38501b699a5da125a5496.tar.bz2
score: Move processor affinity to Thread_Control
Update #3059.
Diffstat (limited to 'cpukit/score/src/schedulergetaffinity.c')
-rw-r--r--cpukit/score/src/schedulergetaffinity.c30
1 files changed, 9 insertions, 21 deletions
diff --git a/cpukit/score/src/schedulergetaffinity.c b/cpukit/score/src/schedulergetaffinity.c
index 37e10de958..8425a7fcf6 100644
--- a/cpukit/score/src/schedulergetaffinity.c
+++ b/cpukit/score/src/schedulergetaffinity.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2014, 2017 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
@@ -24,33 +24,21 @@ bool _Scheduler_Get_affinity(
cpu_set_t *cpuset
)
{
- const Scheduler_Control *scheduler;
- ISR_lock_Context lock_context;
- bool ok;
-
- if ( !_CPU_set_Is_large_enough( cpusetsize ) ) {
- return false;
- }
+ const Scheduler_Control *scheduler;
+ ISR_lock_Context lock_context;
+ Processor_mask *affinity;
+ Processor_mask_Copy_status status;
scheduler = _Thread_Scheduler_get_home( the_thread );
_Scheduler_Acquire_critical( scheduler, &lock_context );
#if defined(RTEMS_SMP)
- ok = ( *scheduler->Operations.get_affinity )(
- scheduler,
- the_thread,
- cpusetsize,
- cpuset
- );
+ affinity = &the_thread->Scheduler.Affinity;
#else
- ok = _Scheduler_default_Get_affinity_body(
- scheduler,
- the_thread,
- cpusetsize,
- cpuset
- );
+ affinity = &_Processor_mask_The_one_and_only;
#endif
+ status = _Processor_mask_To_cpu_set_t( affinity, cpusetsize, cpuset );
_Scheduler_Release_critical( scheduler, &lock_context );
- return ok;
+ return status == PROCESSOR_MASK_COPY_LOSSLESS;
}