[PATCH v2 13/44] config: Add _SMP_Is_enabled
Sebastian Huber
sebastian.huber at embedded-brains.de
Fri Feb 21 10:52:25 UTC 2020
Move the is SMP enabled configuration constant out of the
configuration table.
Since this was the last configuration constant in
rtems_configuration_table, remove this type.
Update #3875.
---
cpukit/include/rtems/confdefs.h | 14 ++++----------
cpukit/include/rtems/config.h | 31 ++-----------------------------
cpukit/include/rtems/score/smp.h | 13 +++++++++++++
3 files changed, 19 insertions(+), 39 deletions(-)
diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h
index f8a4eb23cf..3741c9a706 100644
--- a/cpukit/include/rtems/confdefs.h
+++ b/cpukit/include/rtems/confdefs.h
@@ -2633,20 +2633,14 @@ struct _reent *__getreent(void)
#error "CONFIGURE_TASK_STACK_ALLOCATOR and CONFIGURE_TASK_STACK_DEALLOCATOR must be both defined or both undefined"
#endif
- /**
- * This is the primary Configuration Table for this application.
- */
- const rtems_configuration_table Configuration = {
- #ifdef RTEMS_SMP
+ #ifdef RTEMS_SMP
+ const bool _SMP_Is_enabled =
#ifdef _CONFIGURE_SMP_APPLICATION
- true
+ true;
#else
- false
+ false;
#endif
- #endif
- };
- #ifdef RTEMS_SMP
const uint32_t _SMP_Processor_configured_maximum =
_CONFIGURE_MAXIMUM_PROCESSORS;
#endif
diff --git a/cpukit/include/rtems/config.h b/cpukit/include/rtems/config.h
index 5550397623..4811d0e704 100644
--- a/cpukit/include/rtems/config.h
+++ b/cpukit/include/rtems/config.h
@@ -72,28 +72,6 @@ typedef Stack_Allocator_allocate rtems_stack_allocate_hook;
*/
typedef Stack_Allocator_free rtems_stack_free_hook;
-/*
- * The following records define the Configuration Table. The
- * information contained in this table is required in all
- * RTEMS systems, whether single or multiprocessor. This
- * table primarily defines the following:
- *
- * + location and size of the RTEMS Workspace
- * + microseconds per clock tick
- * + clock ticks per task timeslice
- * + required number of each object type for each API configured
- */
-typedef struct {
- #ifdef RTEMS_SMP
- bool smp_enabled;
- #endif
-} rtems_configuration_table;
-
-/**
- * This is the configuration table generated by confdefs.h.
- */
-extern const rtems_configuration_table Configuration;
-
/*
* Some handy macros to avoid dependencies on either the BSP
* or the exact format of the configuration table.
@@ -182,13 +160,8 @@ uint32_t rtems_configuration_get_maximum_extensions( void );
* @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
+#define rtems_configuration_is_smp_enabled() \
+ (_SMP_Is_enabled)
/**
* @brief Returns the configured maximum count of processors.
diff --git a/cpukit/include/rtems/score/smp.h b/cpukit/include/rtems/score/smp.h
index 2722fbdcee..36cfd981ab 100644
--- a/cpukit/include/rtems/score/smp.h
+++ b/cpukit/include/rtems/score/smp.h
@@ -36,6 +36,19 @@ extern "C" {
* @{
*/
+/**
+ * @brief Indicates if SMP is enabled.
+ *
+ * In SMP configurations, this constant is defined by the application
+ * configuration via <rtems/confdefs.h>, otherwise it is a compile-time
+ * constant with the value false.
+ */
+#if defined(RTEMS_SMP)
+ extern const bool _SMP_Is_enabled;
+#else
+ #define _SMP_Is_enabled false
+#endif
+
/**
* @brief The configured processor maximum.
*
--
2.16.4
More information about the devel
mailing list