From 36b86d7eb5e51a62c0cee1906210b389c2ab96eb Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Mon, 25 Jan 2016 20:55:52 +0100 Subject: score: Create idle threads via linker set This allows a more fine grained rtems_initialize_data_structures(). Update #2408. --- cpukit/sapi/src/exinit.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'cpukit/sapi/src/exinit.c') diff --git a/cpukit/sapi/src/exinit.c b/cpukit/sapi/src/exinit.c index 7c1ffd65ec..faaf283a30 100644 --- a/cpukit/sapi/src/exinit.c +++ b/cpukit/sapi/src/exinit.c @@ -142,21 +142,6 @@ static void rtems_initialize_data_structures(void) _Extension_Manager_initialization(); _POSIX_API_Initialize(); - - _System_state_Set( SYSTEM_STATE_BEFORE_MULTITASKING ); - - /* - * No threads should be created before this point!!! - * _Thread_Executing and _Thread_Heir are not set. - * - * At this point all API extensions are in place. After the call to - * _Thread_Create_idle() _Thread_Executing and _Thread_Heir will be set. - */ - _Thread_Create_idle(); - - /* - * Scheduling can properly occur now as long as we avoid dispatching. - */ } static void rtems_initialize_before_drivers(void) @@ -261,6 +246,21 @@ RTEMS_SYSINIT_ITEM( RTEMS_SYSINIT_ORDER_MIDDLE ); +/* + * No threads should be created before this point!!! + * _Thread_Executing and _Thread_Heir are not set. + * + * At this point all API extensions are in place. After the call to + * _Thread_Create_idle() _Thread_Executing and _Thread_Heir will be set. + * + * Scheduling can properly occur afterwards as long as we avoid dispatching. + */ +RTEMS_SYSINIT_ITEM( + _Thread_Create_idle, + RTEMS_SYSINIT_IDLE_THREADS, + RTEMS_SYSINIT_ORDER_MIDDLE +); + RTEMS_SYSINIT_ITEM( rtems_initialize_before_drivers, RTEMS_SYSINIT_BEFORE_DRIVERS, -- cgit v1.2.3