diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-07-04 08:59:37 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-07-07 07:36:31 +0200 |
commit | 0232b28df10549d64dcc6d9fc68a332014dac8eb (patch) | |
tree | 5c5a43f51fe93858f86412f817bb05d54960fc81 /cpukit/score/include/rtems/score/schedulerimpl.h | |
parent | rtems: Fix rtems_scheduler_remove_processor() (diff) | |
download | rtems-0232b28df10549d64dcc6d9fc68a332014dac8eb.tar.bz2 |
score: Use processor mask for set affinity
Update #3059.
Diffstat (limited to 'cpukit/score/include/rtems/score/schedulerimpl.h')
-rw-r--r-- | cpukit/score/include/rtems/score/schedulerimpl.h | 31 |
1 files changed, 5 insertions, 26 deletions
diff --git a/cpukit/score/include/rtems/score/schedulerimpl.h b/cpukit/score/include/rtems/score/schedulerimpl.h index 895f116066..6f220acf57 100644 --- a/cpukit/score/include/rtems/score/schedulerimpl.h +++ b/cpukit/score/include/rtems/score/schedulerimpl.h @@ -609,34 +609,13 @@ bool _Scheduler_Get_affinity( RTEMS_INLINE_ROUTINE bool _Scheduler_default_Set_affinity_body( const Scheduler_Control *scheduler, Thread_Control *the_thread, - size_t cpusetsize, - const cpu_set_t *cpuset + const Processor_mask *affinity ) { - uint32_t cpu_count = _SMP_Get_processor_count(); - uint32_t cpu_index; - bool ok = true; - - for ( cpu_index = 0 ; cpu_index < cpu_count ; ++cpu_index ) { -#if defined(RTEMS_SMP) - const Per_CPU_Control *cpu; - const Scheduler_Control *scheduler_of_cpu; - - cpu = _Per_CPU_Get_by_index( cpu_index ); - scheduler_of_cpu = _Scheduler_Get_by_CPU( cpu ); - - ok = ok - && ( CPU_ISSET_S( (int) cpu_index, cpusetsize, cpuset ) - || ( !CPU_ISSET_S( (int) cpu_index, cpusetsize, cpuset ) - && scheduler != scheduler_of_cpu ) ); -#else - (void) scheduler; - - ok = ok && CPU_ISSET_S( (int) cpu_index, cpusetsize, cpuset ); -#endif - } - - return ok; + return _Processor_mask_Is_subset( + affinity, + _Scheduler_Get_processors( scheduler ) + ); } bool _Scheduler_Set_affinity( |