diff options
Diffstat (limited to 'cpukit/score/src/schedulerpriorityaffinitysmp.c')
-rw-r--r-- | cpukit/score/src/schedulerpriorityaffinitysmp.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/cpukit/score/src/schedulerpriorityaffinitysmp.c b/cpukit/score/src/schedulerpriorityaffinitysmp.c index 4533dec9d7..6cc480d5c4 100644 --- a/cpukit/score/src/schedulerpriorityaffinitysmp.c +++ b/cpukit/score/src/schedulerpriorityaffinitysmp.c @@ -614,17 +614,20 @@ Thread_Control *_Scheduler_priority_affinity_SMP_Remove_processor( bool _Scheduler_priority_affinity_SMP_Set_affinity( const Scheduler_Control *scheduler, Thread_Control *thread, - size_t cpusetsize, - const cpu_set_t *cpuset + const Processor_mask *affinity ) { Scheduler_priority_affinity_SMP_Node *node; States_Control current_state; + cpu_set_t cpuset; + size_t cpusetsize; + cpusetsize = sizeof( cpuset ); + _Processor_mask_To_cpu_set_t( affinity, cpusetsize, &cpuset ); /* * Validate that the cpset meets basic requirements. */ - if ( !_CPU_set_Is_valid( cpuset, cpusetsize ) ) { + if ( !_CPU_set_Is_valid( &cpuset, cpusetsize ) ) { return false; } @@ -634,7 +637,7 @@ bool _Scheduler_priority_affinity_SMP_Set_affinity( * The old and new set are the same, there is no point in * doing anything. */ - if ( CPU_EQUAL_S( cpusetsize, cpuset, node->Affinity.set ) ) + if ( CPU_EQUAL_S( cpusetsize, &cpuset, node->Affinity.set ) ) return true; current_state = thread->current_state; @@ -643,7 +646,7 @@ bool _Scheduler_priority_affinity_SMP_Set_affinity( _Scheduler_priority_affinity_SMP_Block( scheduler, thread, &node->Base.Base.Base ); } - CPU_COPY( cpuset, node->Affinity.set ); + CPU_COPY( &cpuset, node->Affinity.set ); if ( _States_Is_ready( current_state ) ) { /* |