[PATCH] confdefs.h: Add SMP enabled field to configuration

Sebastian Huber sebastian.huber at embedded-brains.de
Fri May 12 08:11:32 UTC 2017


Do not use the processor count to determine if SMP is enabled.  Instead
use a dedicated configuration option.  Enable SMP by default in SMP
configurations.

Add CONFIGURE_DISABLE_SMP_CONFIGURATION to all test which would fail
otherwise.

Update #3001.
---
 cpukit/sapi/include/confdefs.h           | 7 +++++++
 cpukit/sapi/include/rtems/config.h       | 6 +++++-
 testsuites/libtests/cpuuse/system.h      | 2 ++
 testsuites/libtests/rtmonuse/system.h    | 2 ++
 testsuites/libtests/termios05/init.c     | 2 ++
 testsuites/sptests/sp01/system.h         | 2 ++
 testsuites/sptests/sp08/init.c           | 2 ++
 testsuites/sptests/sp14/system.h         | 2 ++
 testsuites/sptests/sp20/system.h         | 2 ++
 testsuites/sptests/sp37/system.h         | 2 ++
 testsuites/sptests/spcbssched01/system.h | 2 ++
 testsuites/sptests/spcbssched02/system.h | 2 ++
 testsuites/sptests/spcbssched03/system.h | 2 ++
 testsuites/sptests/spedfsched01/system.h | 2 ++
 testsuites/sptests/spedfsched02/system.h | 2 ++
 testsuites/sptests/spedfsched03/system.h | 2 ++
 testsuites/sptests/spfifo03/init.c       | 2 +-
 testsuites/sptests/spfifo05/init.c       | 2 +-
 testsuites/tmtests/tm08/system.h         | 2 ++
 testsuites/tmtests/tm22/system.h         | 2 ++
 20 files changed, 46 insertions(+), 3 deletions(-)

diff --git a/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h
index 5cba1a8..4ac6700 100755
--- a/cpukit/sapi/include/confdefs.h
+++ b/cpukit/sapi/include/confdefs.h
@@ -3320,6 +3320,13 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
     #else
       false,
     #endif
+    #ifdef RTEMS_SMP
+      #ifdef _CONFIGURE_SMP_APPLICATION
+        true,
+      #else
+        false,
+      #endif
+    #endif
     _CONFIGURE_NUMBER_OF_INITIAL_EXTENSIONS,   /* number of static extensions */
     CONFIGURE_INITIAL_EXTENSION_TABLE,        /* pointer to static extensions */
     #if defined(RTEMS_MULTIPROCESSING)
diff --git a/cpukit/sapi/include/rtems/config.h b/cpukit/sapi/include/rtems/config.h
index ddcb77c..2993e70 100644
--- a/cpukit/sapi/include/rtems/config.h
+++ b/cpukit/sapi/include/rtems/config.h
@@ -237,6 +237,10 @@ typedef struct {
    */
   bool                           stack_allocator_avoids_work_space;
 
+  #ifdef RTEMS_SMP
+    bool                         smp_enabled;
+  #endif
+
   uint32_t                       number_of_initial_extensions;
   const rtems_extensions_table  *User_extension_table;
   #if defined(RTEMS_MULTIPROCESSING)
@@ -360,7 +364,7 @@ extern const rtems_configuration_table Configuration;
  */
 #ifdef RTEMS_SMP
   #define rtems_configuration_is_smp_enabled() \
-        (rtems_configuration_get_maximum_processors() > 1)
+        (Configuration.smp_enabled)
 #else
   #define rtems_configuration_is_smp_enabled() \
         false
diff --git a/testsuites/libtests/cpuuse/system.h b/testsuites/libtests/cpuuse/system.h
index 0501d41..562f2db 100644
--- a/testsuites/libtests/cpuuse/system.h
+++ b/testsuites/libtests/cpuuse/system.h
@@ -50,6 +50,8 @@ void Task_switch(
 
 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
+
 #include <rtems/confdefs.h>
 
 /* global variables */
diff --git a/testsuites/libtests/rtmonuse/system.h b/testsuites/libtests/rtmonuse/system.h
index 1544f80..b7bb5f1 100644
--- a/testsuites/libtests/rtmonuse/system.h
+++ b/testsuites/libtests/rtmonuse/system.h
@@ -47,6 +47,8 @@ void Get_all_counters( void );
 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
 
 #define CONFIGURE_EXTRA_TASK_STACKS           (20 * RTEMS_MINIMUM_STACK_SIZE)
+
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
 #include <rtems/confdefs.h>
 
 /* global variables */
diff --git a/testsuites/libtests/termios05/init.c b/testsuites/libtests/termios05/init.c
index 3cdf969..e9f1531 100644
--- a/testsuites/libtests/termios05/init.c
+++ b/testsuites/libtests/termios05/init.c
@@ -166,6 +166,8 @@ rtems_task Init(
 
 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
+
 #define CONFIGURE_INIT
 
 #include <rtems/confdefs.h>
diff --git a/testsuites/sptests/sp01/system.h b/testsuites/sptests/sp01/system.h
index a317dd9..68f8277 100644
--- a/testsuites/sptests/sp01/system.h
+++ b/testsuites/sptests/sp01/system.h
@@ -31,6 +31,8 @@ rtems_task Task_1_through_3(
 #define CONFIGURE_EXTRA_TASK_STACKS         (4 * RTEMS_MINIMUM_STACK_SIZE)
 #define CONFIGURE_MAXIMUM_TASKS             4
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
+
 #include <rtems/confdefs.h>
 
 /* global variables */
diff --git a/testsuites/sptests/sp08/init.c b/testsuites/sptests/sp08/init.c
index 77e9819..2364c70 100644
--- a/testsuites/sptests/sp08/init.c
+++ b/testsuites/sptests/sp08/init.c
@@ -300,6 +300,8 @@ rtems_task Init(
 
 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
+
 #define CONFIGURE_INIT
 #include <rtems/confdefs.h>
 /* end of file */
diff --git a/testsuites/sptests/sp14/system.h b/testsuites/sptests/sp14/system.h
index 7721366..3a63a8d 100644
--- a/testsuites/sptests/sp14/system.h
+++ b/testsuites/sptests/sp14/system.h
@@ -51,6 +51,8 @@ rtems_task Task_2(
 
 #define CONFIGURE_EXTRA_TASK_STACKS         (1 * RTEMS_MINIMUM_STACK_SIZE)
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
+
 #include <rtems/confdefs.h>
 
 /* global variables */
diff --git a/testsuites/sptests/sp20/system.h b/testsuites/sptests/sp20/system.h
index dfefe4b..cbc926a 100644
--- a/testsuites/sptests/sp20/system.h
+++ b/testsuites/sptests/sp20/system.h
@@ -47,6 +47,8 @@ void Get_all_counters( void );
 
 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
+
 #include <rtems/confdefs.h>
 
 /* global variables */
diff --git a/testsuites/sptests/sp37/system.h b/testsuites/sptests/sp37/system.h
index 6bb47ec..67a62d2 100644
--- a/testsuites/sptests/sp37/system.h
+++ b/testsuites/sptests/sp37/system.h
@@ -39,6 +39,8 @@ rtems_task Init(
 #define CONFIGURE_MAXIMUM_TASKS             2
 #define CONFIGURE_MAXIMUM_TIMERS            1
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
+
 #include <rtems/confdefs.h>
 
 /* end of include file */
diff --git a/testsuites/sptests/spcbssched01/system.h b/testsuites/sptests/spcbssched01/system.h
index 2ba1db5..813a7a0 100644
--- a/testsuites/sptests/spcbssched01/system.h
+++ b/testsuites/sptests/spcbssched01/system.h
@@ -37,6 +37,8 @@ rtems_task Task_1_through_3(
 #define CONFIGURE_EXTRA_TASK_STACKS         (4 * RTEMS_MINIMUM_STACK_SIZE)
 #define CONFIGURE_MAXIMUM_TASKS             4
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
+
 #include <rtems/confdefs.h>
 
 /* global variables */
diff --git a/testsuites/sptests/spcbssched02/system.h b/testsuites/sptests/spcbssched02/system.h
index dba3d13..302b9b5 100644
--- a/testsuites/sptests/spcbssched02/system.h
+++ b/testsuites/sptests/spcbssched02/system.h
@@ -43,6 +43,8 @@ rtems_task Task_Periodic(
 
 #define CONFIGURE_SCHEDULER_CBS
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
+
 #include <rtems/confdefs.h>
 
 #include <rtems/rtems/clock.h>
diff --git a/testsuites/sptests/spcbssched03/system.h b/testsuites/sptests/spcbssched03/system.h
index 4ad5204..7ce4884 100644
--- a/testsuites/sptests/spcbssched03/system.h
+++ b/testsuites/sptests/spcbssched03/system.h
@@ -47,6 +47,8 @@ rtems_task Tasks_Aperiodic(
 
 #define CONFIGURE_SCHEDULER_CBS
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
+
 #include <rtems/confdefs.h>
 
 #include <rtems/rtems/clock.h>
diff --git a/testsuites/sptests/spedfsched01/system.h b/testsuites/sptests/spedfsched01/system.h
index b930cb1..e673b1f 100644
--- a/testsuites/sptests/spedfsched01/system.h
+++ b/testsuites/sptests/spedfsched01/system.h
@@ -37,6 +37,8 @@ rtems_task Task_1_through_3(
 #define CONFIGURE_EXTRA_TASK_STACKS         (4 * RTEMS_MINIMUM_STACK_SIZE)
 #define CONFIGURE_MAXIMUM_TASKS             4
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
+
 #include <rtems/confdefs.h>
 
 /* global variables */
diff --git a/testsuites/sptests/spedfsched02/system.h b/testsuites/sptests/spedfsched02/system.h
index c92a398..cbdb7ad 100644
--- a/testsuites/sptests/spedfsched02/system.h
+++ b/testsuites/sptests/spedfsched02/system.h
@@ -49,6 +49,8 @@ void Get_all_counters( void );
 
 #define CONFIGURE_SCHEDULER_EDF
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
+
 #include <rtems/confdefs.h>
 
 /* global variables */
diff --git a/testsuites/sptests/spedfsched03/system.h b/testsuites/sptests/spedfsched03/system.h
index 95922ae..ec5af82 100644
--- a/testsuites/sptests/spedfsched03/system.h
+++ b/testsuites/sptests/spedfsched03/system.h
@@ -47,6 +47,8 @@ rtems_task Tasks_Aperiodic(
 
 #define CONFIGURE_SCHEDULER_EDF
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
+
 #include <rtems/confdefs.h>
 
 #include <rtems/rtems/clock.h>
diff --git a/testsuites/sptests/spfifo03/init.c b/testsuites/sptests/spfifo03/init.c
index 0fb024a..5aa4800 100644
--- a/testsuites/sptests/spfifo03/init.c
+++ b/testsuites/sptests/spfifo03/init.c
@@ -215,9 +215,9 @@ rtems_task Init(
 
 #define CONFIGURE_MAXIMUM_BARRIERS 1
 
-#define CONFIGURE_INIT
 #define CONFIGURE_MAXIMUM_FIFOS 1
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
 
 #define CONFIGURE_INIT
 #include <rtems/confdefs.h>
diff --git a/testsuites/sptests/spfifo05/init.c b/testsuites/sptests/spfifo05/init.c
index 1ccdd49..a5ce313 100644
--- a/testsuites/sptests/spfifo05/init.c
+++ b/testsuites/sptests/spfifo05/init.c
@@ -270,9 +270,9 @@ rtems_task Init(
 
 #define CONFIGURE_MAXIMUM_BARRIERS 2
 
-#define CONFIGURE_INIT
 #define CONFIGURE_MAXIMUM_FIFOS 1
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
 
 #define CONFIGURE_INIT
 #include <rtems/confdefs.h>
diff --git a/testsuites/tmtests/tm08/system.h b/testsuites/tmtests/tm08/system.h
index 3610fe9..e6af3c1 100644
--- a/testsuites/tmtests/tm08/system.h
+++ b/testsuites/tmtests/tm08/system.h
@@ -32,6 +32,8 @@ rtems_task Init(
 
 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
+
 #include <rtems/confdefs.h>
 
 /* end of include file */
diff --git a/testsuites/tmtests/tm22/system.h b/testsuites/tmtests/tm22/system.h
index fa7795f..89c7138 100644
--- a/testsuites/tmtests/tm22/system.h
+++ b/testsuites/tmtests/tm22/system.h
@@ -38,6 +38,8 @@ rtems_task Init(
   CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE(100, MESSAGE_SIZE )
 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
 
+#define CONFIGURE_DISABLE_SMP_CONFIGURATION
+
 #include <rtems/confdefs.h>
 
 /* end of include file */
-- 
1.8.4.5



More information about the devel mailing list