summaryrefslogtreecommitdiffstats
path: root/cpukit
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2007-11-28 22:04:31 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2007-11-28 22:04:31 +0000
commit922183809e1e6842ab42c86a533215c919075794 (patch)
tree46f54b3a15f34d87e72921488e5939ce8da87b69 /cpukit
parent2007-11-28 Joel Sherrill <joel.sherrill@OARcorp.com> (diff)
downloadrtems-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/ChangeLog7
-rw-r--r--cpukit/sapi/src/exinit.c69
-rw-r--r--cpukit/score/include/rtems/score/object.h2
-rw-r--r--cpukit/score/include/rtems/score/thread.h7
-rw-r--r--cpukit/score/src/object.c6
-rw-r--r--cpukit/score/src/thread.c7
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;