diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-11-28 22:04:31 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2007-11-28 22:04:31 +0000 |
commit | 922183809e1e6842ab42c86a533215c919075794 (patch) | |
tree | 46f54b3a15f34d87e72921488e5939ce8da87b69 /cpukit | |
parent | 2007-11-28 Joel Sherrill <joel.sherrill@OARcorp.com> (diff) | |
download | rtems-922183809e1e6842ab42c86a533215c919075794.tar.bz2 |
2007-11-28 Joel Sherrill <joel.sherrill@OARcorp.com>
* sapi/src/exinit.c, score/include/rtems/score/object.h,
score/include/rtems/score/thread.h, score/src/object.c,
score/src/thread.c: Conditionally compile out more code that is
specific to multiprocessor configurations.
Diffstat (limited to 'cpukit')
-rw-r--r-- | cpukit/ChangeLog | 7 | ||||
-rw-r--r-- | cpukit/sapi/src/exinit.c | 69 | ||||
-rw-r--r-- | cpukit/score/include/rtems/score/object.h | 2 | ||||
-rw-r--r-- | cpukit/score/include/rtems/score/thread.h | 7 | ||||
-rw-r--r-- | cpukit/score/src/object.c | 6 | ||||
-rw-r--r-- | cpukit/score/src/thread.c | 7 |
6 files changed, 55 insertions, 43 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index f0d087b42f..859f11d108 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,10 @@ +2007-11-28 Joel Sherrill <joel.sherrill@OARcorp.com> + + * sapi/src/exinit.c, score/include/rtems/score/object.h, + score/include/rtems/score/thread.h, score/src/object.c, + score/src/thread.c: Conditionally compile out more code that is + specific to multiprocessor configurations. + 2007-11-28 Joel Sherrill <joel.sherrill@oarcorp.com> * posix/Makefile.am, posix/preinstall.am, posix/src/cancel.c, diff --git a/cpukit/sapi/src/exinit.c b/cpukit/sapi/src/exinit.c index f8c13ffe62..452f50708f 100644 --- a/cpukit/sapi/src/exinit.c +++ b/cpukit/sapi/src/exinit.c @@ -1,7 +1,7 @@ /* * Initialization Manager * - * COPYRIGHT (c) 1989-1999. + * COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -67,16 +67,17 @@ rtems_interrupt_level rtems_initialize_executive_early( ) { rtems_interrupt_level bsp_level; - rtems_multiprocessing_table *multiprocessing_table; /* * Dispatching and interrupts are disabled until the end of the * initialization sequence. This prevents an inadvertent context * switch before the executive is initialized. */ - _ISR_Disable( bsp_level ); + /* + * Make sure the parameters were not NULL. + */ if ( configuration_table == NULL ) _Internal_error_Occurred( INTERNAL_ERROR_CORE, @@ -84,52 +85,41 @@ rtems_interrupt_level rtems_initialize_executive_early( INTERNAL_ERROR_NO_CONFIGURATION_TABLE ); + if ( cpu_table == NULL ) + _Internal_error_Occurred( + INTERNAL_ERROR_CORE, + TRUE, + INTERNAL_ERROR_NO_CPU_TABLE + ); + +#if defined(RTEMS_MULTIPROCESSING) /* * Initialize the system state based on whether this is an MP system. + * In an MP configuration, internally we view single processor + * systems as a very restricted multiprocessor system. */ + _Configuration_MP_table = configuration_table->User_multiprocessing_table; -#if defined(RTEMS_MULTIPROCESSING) - multiprocessing_table = configuration_table->User_multiprocessing_table; - - _System_state_Handler_initialization( - (multiprocessing_table) ? TRUE : FALSE - ); + if ( _Configuration_MP_table == NULL ) { + _Configuration_MP_table = + (void *)&_Initialization_Default_multiprocessing_table; + _System_state_Handler_initialization( FALSE ); + } else { + _System_state_Handler_initialization( TRUE ); + } #else - multiprocessing_table = NULL; - _System_state_Handler_initialization( FALSE ); #endif /* * Grab our own copy of the user's CPU table. */ - _CPU_Table = *cpu_table; /* - * Provided just for user convenience. + * Provide pointers just for later convenience. */ - _Configuration_Table = configuration_table; -#if defined(RTEMS_MULTIPROCESSING) - _Configuration_MP_table = multiprocessing_table; -#endif - - /* - * Internally we view single processor systems as a very restricted - * multiprocessor system. - */ - - if ( multiprocessing_table == NULL ) - multiprocessing_table = - (void *)&_Initialization_Default_multiprocessing_table; - - if ( cpu_table == NULL ) - _Internal_error_Occurred( - INTERNAL_ERROR_CORE, - TRUE, - INTERNAL_ERROR_NO_CPU_TABLE - ); _CPU_Initialize( cpu_table, _Thread_Dispatch ); @@ -157,9 +147,11 @@ rtems_interrupt_level rtems_initialize_executive_early( _ISR_Handler_initialization(); _Objects_Handler_initialization( - multiprocessing_table->node, - multiprocessing_table->maximum_nodes, - multiprocessing_table->maximum_global_objects +#if defined(RTEMS_MULTIPROCESSING) + _Configuration_MP_table->node, + _Configuration_MP_table->maximum_nodes, + _Configuration_MP_table->maximum_global_objects +#endif ); _Objects_Information_table[OBJECTS_INTERNAL_API] = _Internal_Objects; @@ -178,8 +170,11 @@ rtems_interrupt_level rtems_initialize_executive_early( _Thread_Handler_initialization( configuration_table->ticks_per_timeslice, - configuration_table->maximum_extensions, + configuration_table->maximum_extensions +#if defined(RTEMS_MULTIPROCESSING) + , multiprocessing_table->maximum_proxies +#endif ); #if defined(RTEMS_MULTIPROCESSING) diff --git a/cpukit/score/include/rtems/score/object.h b/cpukit/score/include/rtems/score/object.h index 8058c47250..9b328a67a3 100644 --- a/cpukit/score/include/rtems/score/object.h +++ b/cpukit/score/include/rtems/score/object.h @@ -435,9 +435,11 @@ SCORE_EXTERN Objects_Information * concurrently offered in the system. */ void _Objects_Handler_initialization( +#if defined(RTEMS_MULTIPROCESSING) uint32_t node, uint32_t maximum_nodes, uint32_t maximum_global_objects +#endif ); /** diff --git a/cpukit/score/include/rtems/score/thread.h b/cpukit/score/include/rtems/score/thread.h index 87237e69be..5bfd4534e9 100644 --- a/cpukit/score/include/rtems/score/thread.h +++ b/cpukit/score/include/rtems/score/thread.h @@ -6,7 +6,7 @@ */ /* - * COPYRIGHT (c) 1989-2006. + * COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -473,8 +473,11 @@ SCORE_EXTERN struct _reent **_Thread_libc_reent; */ void _Thread_Handler_initialization ( uint32_t ticks_per_timeslice, - uint32_t maximum_extensions, + uint32_t maximum_extensions +#if defined(RTEMS_MULTIPROCESSING) + , uint32_t maximum_proxies +#endif ); /** diff --git a/cpukit/score/src/object.c b/cpukit/score/src/object.c index ba486217a7..7168c6f2d4 100644 --- a/cpukit/score/src/object.c +++ b/cpukit/score/src/object.c @@ -2,7 +2,7 @@ * Object Handler * * - * COPYRIGHT (c) 1989-1999. + * COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -43,11 +43,14 @@ */ void _Objects_Handler_initialization( +#if defined(RTEMS_MULTIPROCESSING) uint32_t node, uint32_t maximum_nodes, uint32_t maximum_global_objects +#endif ) { +#if defined(RTEMS_MULTIPROCESSING) if ( node < 1 || node > maximum_nodes ) _Internal_error_Occurred( INTERNAL_ERROR_CORE, @@ -55,7 +58,6 @@ void _Objects_Handler_initialization( INTERNAL_ERROR_INVALID_NODE ); -#if defined(RTEMS_MULTIPROCESSING) _Objects_Local_node = node; _Objects_Maximum_nodes = maximum_nodes; diff --git a/cpukit/score/src/thread.c b/cpukit/score/src/thread.c index 58b62b7116..8e924c65cf 100644 --- a/cpukit/score/src/thread.c +++ b/cpukit/score/src/thread.c @@ -2,7 +2,7 @@ * Thread Handler * * - * COPYRIGHT (c) 1989-1999. + * COPYRIGHT (c) 1989-2007. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -45,8 +45,11 @@ void _Thread_Handler_initialization( uint32_t ticks_per_timeslice, - uint32_t maximum_extensions, + uint32_t maximum_extensions +#if defined(RTEMS_MULTIPROCESSING) + , uint32_t maximum_proxies +#endif ) { uint32_t index; |