Update #2408. --- cpukit/sapi/src/exinit.c | 3 --- cpukit/score/include/rtems/score/cpusetimpl.h | 12 ------------ cpukit/score/include/rtems/sysinit.h | 1 + cpukit/score/src/cpuset.c | 9 ++++++++- doc/user/init.t | 4 ++++ 5 files changed, 13 insertions(+), 16 deletions(-)
diff --git a/cpukit/sapi/src/exinit.c b/cpukit/sapi/src/exinit.c index 1f482f0..08249dd 100644 --- a/cpukit/sapi/src/exinit.c +++ b/cpukit/sapi/src/exinit.c @@ -37,7 +37,6 @@ #include <rtems/score/apiext.h> #include <rtems/score/apimutex.h> #include <rtems/score/copyrt.h> -#include <rtems/score/cpusetimpl.h> #include <rtems/score/heap.h> #include <rtems/score/interr.h> #include <rtems/score/isr.h> @@ -127,8 +126,6 @@ static void rtems_initialize_data_structures(void) _SMP_Handler_initialize(); - _CPU_set_Handler_initialization(); - /* MANAGERS */ _RTEMS_API_Initialize(); diff --git a/cpukit/score/include/rtems/score/cpusetimpl.h b/cpukit/score/include/rtems/score/cpusetimpl.h index 226c3a1..f9a0f0f 100644 --- a/cpukit/score/include/rtems/score/cpusetimpl.h +++ b/cpukit/score/include/rtems/score/cpusetimpl.h @@ -123,18 +123,6 @@ static inline void _CPU_set_Set( } #endif -/** - * @brief Initialize the CPU Set Handler - * - * This routine validates a cpuset sets at least one valid cpu and that - * it does not set any invalid cpus. - */ -#if __RTEMS_HAVE_SYS_CPUSET_H__ && defined( RTEMS_SMP ) -void _CPU_set_Handler_initialization(void); -#else -#define _CPU_set_Handler_initialization() do { } while ( 0 ) -#endif - /**@}*/ #ifdef __cplusplus diff --git a/cpukit/score/include/rtems/sysinit.h b/cpukit/score/include/rtems/sysinit.h index 855198d..f870613 100644 --- a/cpukit/score/include/rtems/sysinit.h +++ b/cpukit/score/include/rtems/sysinit.h @@ -29,6 +29,7 @@ extern "C" { #define RTEMS_SYSINIT_BSP_WORK_AREAS 000100 #define RTEMS_SYSINIT_BSP_START 000200 #define RTEMS_SYSINIT_DATA_STRUCTURES 000300 +#define RTEMS_SYSINIT_CPU_SET 00030c #define RTEMS_SYSINIT_BSP_LIBC 000400 #define RTEMS_SYSINIT_BEFORE_DRIVERS 000500 #define RTEMS_SYSINIT_BSP_PRE_DRIVERS 000600 diff --git a/cpukit/score/src/cpuset.c b/cpukit/score/src/cpuset.c index ca355c9..deb9e43 100644 --- a/cpukit/score/src/cpuset.c +++ b/cpukit/score/src/cpuset.c @@ -21,6 +21,7 @@ #ifdef __RTEMS_HAVE_SYS_CPUSET_H__ #include <sys/cpuset.h> +#include <rtems/sysinit.h> #include <rtems/score/cpusetimpl.h> #include <rtems/score/assert.h> #include <rtems/score/percpu.h> @@ -30,7 +31,7 @@ static CPU_set_Control cpuset_default; /* * _CPU_set_Handler_initialization */ -void _CPU_set_Handler_initialization() +static void _CPU_set_Handler_initialization() { uint32_t cpu_count; uint32_t cpu_index; @@ -50,6 +51,12 @@ void _CPU_set_Handler_initialization() CPU_SET_S( (int) cpu_index, cpuset_default.setsize, cpuset_default.set ); } +RTEMS_SYSINIT_ITEM( + _CPU_set_Handler_initialization, + RTEMS_SYSINIT_CPU_SET, + RTEMS_SYSINIT_ORDER_MIDDLE +); + /** * _CPU_set_Is_valid * diff --git a/doc/user/init.t b/doc/user/init.t index c5ebc0d..fdd37e4 100644 --- a/doc/user/init.t +++ b/doc/user/init.t @@ -164,6 +164,10 @@ upon the information in the Configuration Table, User Initialization Tasks Table, Device Driver Table, User Extension Table, Multiprocessor Configuration Table, and the Multiprocessor Communications Interface (MPCI) Table. +@item RTEMS_SYSINIT_CPU_SET +Initializes the global CPU set on SMP configurations in case the application +uses this information. + @item RTEMS_SYSINIT_BSP_LIBC Depending on the application configuration the IO library and root filesystem is initialized. This step is mandatory. -- 1.8.4.5 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel