sapi: Add rtems_configuration_is_smp_enabled()

Add a configuration field which indicates if the SMP mode of operation
is enabled.  This can be used to disable features unsupported on SMP,
e.g task variables.
This commit is contained in:
Sebastian Huber
2013-07-18 11:27:39 +02:00
parent 0bbd8fdce2
commit f913c796ff
8 changed files with 116 additions and 0 deletions

View File

@@ -2364,6 +2364,13 @@ const rtems_libio_helper rtems_fs_init_helper =
#else
false,
#endif
#ifdef RTEMS_SMP
#ifdef CONFIGURE_SMP_APPLICATION
true,
#else
false,
#endif
#endif
CONFIGURE_MAXIMUM_DRIVERS, /* maximum device drivers */
CONFIGURE_NUMBER_OF_DRIVERS, /* static device drivers */
Device_drivers, /* pointer to driver table */

View File

@@ -222,6 +222,10 @@ typedef struct {
*/
bool stack_allocator_avoids_work_space;
#ifdef RTEMS_SMP
bool smp_enabled;
#endif
uint32_t maximum_drivers;
uint32_t number_of_device_drivers;
rtems_driver_address_table *Device_driver_table;
@@ -338,12 +342,33 @@ extern const rtems_configuration_table Configuration;
NULL
#endif
/**
* @brief Returns true if the SMP mode of operation is enabled, and false
* otherwise.
*
* On single-processor configurations this is a compile time constant which
* evaluates to false.
*
* @retval true SMP mode of operation is enabled.
* @retval false Otherwise.
*/
#ifdef RTEMS_SMP
#define rtems_configuration_is_smp_enabled() \
(Configuration.smp_enabled)
#else
#define rtems_configuration_is_smp_enabled() \
false
#endif
/**
* @brief Returns the configured maximum count of processors.
*
* The actual number of processors available for the application will be less
* than or equal to the configured maximum count of processors.
*
* On single-processor configurations this is a compile time constant which
* evaluates to one.
*
* @return The configured maximum count of processors.
*/
#ifdef RTEMS_SMP