summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-02-14 14:04:21 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-02-25 07:15:19 +0100
commitba46b9368eaf57e8c2361c215ceb0d6335ce80fe (patch)
tree5444029488f319e3591fbbdd0257c66c3245d540
parentconfig: Add _SMP_Processor_configure_maximum (diff)
downloadrtems-ba46b9368eaf57e8c2361c215ceb0d6335ce80fe.tar.bz2
config: Add _SMP_Is_enabled
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.
-rw-r--r--cpukit/include/rtems/confdefs.h14
-rw-r--r--cpukit/include/rtems/config.h31
-rw-r--r--cpukit/include/rtems/score/smp.h13
-rw-r--r--cpukit/libmisc/monitor/mon-mpci.c2
4 files changed, 20 insertions, 40 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
@@ -73,28 +73,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
@@ -37,6 +37,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.
*
* In SMP configurations, this constant is defined by the application
diff --git a/cpukit/libmisc/monitor/mon-mpci.c b/cpukit/libmisc/monitor/mon-mpci.c
index 9616518473..f6914aa525 100644
--- a/cpukit/libmisc/monitor/mon-mpci.c
+++ b/cpukit/libmisc/monitor/mon-mpci.c
@@ -75,7 +75,7 @@ rtems_monitor_mpci_next(
_Objects_Allocator_lock();
*next_id += 1;
- return &Configuration;
+ return (const void *) (uintptr_t) 1;
failed:
*next_id = RTEMS_OBJECT_ID_FINAL;