/** * @file * * @ingroup ScoreCpuset * * @brief Routines to Control a CPU Set. */ /* * COPYRIGHT (c) 2014. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://www.rtems.org/license/LICENSE. */ #if HAVE_CONFIG_H #include "config.h" #endif #include #include #include #include #include static CPU_set_Control cpuset_default; /* * _CPU_set_Handler_initialization */ static void _CPU_set_Handler_initialization(void) { uint32_t cpu_count; uint32_t cpu_index; /* We do not support a cpu count over CPU_SETSIZE */ cpu_count = _SMP_Get_processor_count(); /* This should never happen */ _Assert( cpu_count <= CPU_SETSIZE ); /* Initialize the affinity to be the set of all available CPU's */ cpuset_default.set = &cpuset_default.preallocated; cpuset_default.setsize = sizeof( *cpuset_default.set ); CPU_ZERO_S( cpuset_default.setsize, &cpuset_default.preallocated ); for ( cpu_index=0; cpu_index