diff options
Diffstat (limited to 'cpukit/sapi')
-rw-r--r-- | cpukit/sapi/include/rtems/config.h | 6 | ||||
-rw-r--r-- | cpukit/sapi/src/exinit.c | 15 | ||||
-rw-r--r-- | cpukit/sapi/src/rtemsapi.c | 4 |
3 files changed, 25 insertions, 0 deletions
diff --git a/cpukit/sapi/include/rtems/config.h b/cpukit/sapi/include/rtems/config.h index e3ae50d7d1..5a01286059 100644 --- a/cpukit/sapi/include/rtems/config.h +++ b/cpukit/sapi/include/rtems/config.h @@ -43,7 +43,9 @@ typedef void *posix_api_configuration_table; #include <rtems/extension.h> #include <rtems/io.h> +#if defined(RTEMS_MULTIPROCESSING) #include <rtems/score/mpci.h> +#endif /* * The following records define the Multiprocessor Configuration @@ -57,7 +59,11 @@ typedef struct { unsigned32 maximum_nodes; /* maximum # nodes in system */ unsigned32 maximum_global_objects; /* maximum # global objects */ unsigned32 maximum_proxies; /* maximum # proxies */ +#if defined(RTEMS_MULTIPROCESSING) MPCI_Control *User_mpci_table; /* pointer to MPCI table */ +#else + void *User_mpci_table; /* pointer to MPCI table */ +#endif } rtems_multiprocessing_table; /* diff --git a/cpukit/sapi/src/exinit.c b/cpukit/sapi/src/exinit.c index dabf21dcc0..43da0a9363 100644 --- a/cpukit/sapi/src/exinit.c +++ b/cpukit/sapi/src/exinit.c @@ -34,7 +34,9 @@ #include <rtems/score/heap.h> #include <rtems/score/interr.h> #include <rtems/score/isr.h> +#if defined(RTEMS_MULTIPROCESSING) #include <rtems/score/mpci.h> +#endif #include <rtems/score/priority.h> #include <rtems/score/thread.h> #include <rtems/score/tod.h> @@ -107,11 +109,18 @@ rtems_interrupt_level rtems_initialize_executive_early( * Initialize the system state based on whether this is an MP system. */ +#if defined(RTEMS_MULTIPROCESSING) multiprocessing_table = configuration_table->User_multiprocessing_table; _System_state_Handler_initialization( (multiprocessing_table) ? TRUE : FALSE ); +#else + multiprocessing_table = NULL; + + _System_state_Handler_initialization( FALSE ); + +#endif /* * Provided just for user convenience. @@ -179,10 +188,12 @@ rtems_interrupt_level rtems_initialize_executive_early( multiprocessing_table->maximum_proxies ); +#if defined(RTEMS_MULTIPROCESSING) _MPCI_Handler_initialization( multiprocessing_table->User_mpci_table, RTEMS_TIMEOUT ); +#endif /* MANAGERS */ @@ -215,7 +226,9 @@ rtems_interrupt_level rtems_initialize_executive_early( _Thread_Create_idle(); +#if defined(RTEMS_MULTIPROCESSING) _MPCI_Create_server(); +#endif /* * Run the API and BSPs predriver hook. @@ -234,12 +247,14 @@ rtems_interrupt_level rtems_initialize_executive_early( _IO_Initialize_all_drivers(); +#if defined(RTEMS_MULTIPROCESSING) if ( _System_state_Is_multiprocessing ) { _MPCI_Initialization(); _MPCI_Internal_packets_Send_process_packet( MPCI_PACKETS_SYSTEM_VERIFY ); } +#endif /* * Run the APIs and BSPs postdriver hooks. diff --git a/cpukit/sapi/src/rtemsapi.c b/cpukit/sapi/src/rtemsapi.c index d860ad7f99..65475e2399 100644 --- a/cpukit/sapi/src/rtemsapi.c +++ b/cpukit/sapi/src/rtemsapi.c @@ -31,7 +31,9 @@ #include <rtems/rtems/dpmem.h> #include <rtems/rtems/event.h> #include <rtems/rtems/message.h> +#if defined(RTEMS_MULTIPROCESSING) #include <rtems/rtems/mp.h> +#endif #include <rtems/rtems/part.h> #include <rtems/rtems/ratemon.h> #include <rtems/rtems/region.h> @@ -58,7 +60,9 @@ void _RTEMS_API_Initialize( _Interrupt_Manager_initialization(); +#if defined(RTEMS_MULTIPROCESSING) _Multiprocessing_Manager_initialization(); +#endif _RTEMS_tasks_Manager_initialization( api_configuration->maximum_tasks, |