[PATCH 3/3] Remove CONFIGURE_HAS_OWN_CONFIGURATION_TABLE

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Sep 17 10:04:51 UTC 2018


The RTEMS configuration should be done via explicit configuration
options to allow more freedom for implementation changes.

Update #3489.
Update #3490.
---
 cpukit/include/rtems/confdefs.h | 370 ++++++++++++++++++++--------------------
 1 file changed, 186 insertions(+), 184 deletions(-)

diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h
index 661efac7f0..763f54bca5 100644
--- a/cpukit/include/rtems/confdefs.h
+++ b/cpukit/include/rtems/confdefs.h
@@ -2008,222 +2008,222 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
  * of the Classic API services.
  */
 /**@{*/
-#ifndef CONFIGURE_HAS_OWN_CONFIGURATION_TABLE
 
-  /** This configures the maximum number of Classic API tasks. */
-  #ifndef CONFIGURE_MAXIMUM_TASKS
-    #define CONFIGURE_MAXIMUM_TASKS               0
-  #endif
+/** This configures the maximum number of Classic API tasks. */
+#ifndef CONFIGURE_MAXIMUM_TASKS
+  #define CONFIGURE_MAXIMUM_TASKS               0
+#endif
+
+/*
+ * This is calculated to account for the maximum number of Classic API
+ * tasks used by the application and configured RTEMS capabilities.
+ */
+#define _CONFIGURE_TASKS \
+  (CONFIGURE_MAXIMUM_TASKS + _CONFIGURE_LIBBLOCK_TASKS)
 
+#ifndef CONFIGURE_MAXIMUM_TIMERS
+  /** This specifies the maximum number of Classic API timers. */
+  #define CONFIGURE_MAXIMUM_TIMERS             0
   /*
-   * This is calculated to account for the maximum number of Classic API
-   * tasks used by the application and configured RTEMS capabilities.
+   * This macro is calculated to specify the memory required for
+   * Classic API timers.
    */
-  #define _CONFIGURE_TASKS \
-    (CONFIGURE_MAXIMUM_TASKS + _CONFIGURE_LIBBLOCK_TASKS)
+  #define _CONFIGURE_MEMORY_FOR_TIMERS(_timers) 0
+#else
+  #define _CONFIGURE_MEMORY_FOR_TIMERS(_timers) \
+    _Configure_Object_RAM(_timers, sizeof(Timer_Control) )
+#endif
 
-  #ifndef CONFIGURE_MAXIMUM_TIMERS
-    /** This specifies the maximum number of Classic API timers. */
-    #define CONFIGURE_MAXIMUM_TIMERS             0
-    /*
-     * This macro is calculated to specify the memory required for
-     * Classic API timers.
-     */
-    #define _CONFIGURE_MEMORY_FOR_TIMERS(_timers) 0
-  #else
-    #define _CONFIGURE_MEMORY_FOR_TIMERS(_timers) \
-      _Configure_Object_RAM(_timers, sizeof(Timer_Control) )
-  #endif
+#ifndef CONFIGURE_MAXIMUM_SEMAPHORES
+  /** This specifies the maximum number of Classic API semaphores. */
+  #define CONFIGURE_MAXIMUM_SEMAPHORES                 0
+#endif
 
-  #ifndef CONFIGURE_MAXIMUM_SEMAPHORES
-    /** This specifies the maximum number of Classic API semaphores. */
-    #define CONFIGURE_MAXIMUM_SEMAPHORES                 0
-  #endif
+/*
+ * This macro is calculated to specify the memory required for
+ * Classic API Semaphores using MRSP. This is only available in
+ * SMP configurations.
+ */
+#if !defined(RTEMS_SMP) || \
+  !defined(CONFIGURE_MAXIMUM_MRSP_SEMAPHORES)
+  #define _CONFIGURE_MEMORY_FOR_MRSP_SEMAPHORES 0
+#else
+  #define _CONFIGURE_MEMORY_FOR_MRSP_SEMAPHORES \
+    CONFIGURE_MAXIMUM_MRSP_SEMAPHORES * \
+      _Configure_From_workspace( \
+        RTEMS_ARRAY_SIZE(_Scheduler_Table) * sizeof(Priority_Control) \
+      )
+#endif
 
+/*
+ * This macro is calculated to specify the memory required for
+ * Classic API Semaphores.
+ *
+ * If there are no user or support semaphores defined, then we can assume
+ * that no memory need be allocated at all for semaphores.
+ */
+#if CONFIGURE_MAXIMUM_SEMAPHORES == 0
+  #define _CONFIGURE_MEMORY_FOR_SEMAPHORES(_semaphores) 0
+#else
+  #define _CONFIGURE_MEMORY_FOR_SEMAPHORES(_semaphores) \
+    _Configure_Object_RAM(_semaphores, sizeof(Semaphore_Control) ) + \
+      _CONFIGURE_MEMORY_FOR_MRSP_SEMAPHORES
+#endif
+
+#ifndef CONFIGURE_MAXIMUM_MESSAGE_QUEUES
+  /**
+   * This configuration parameter specifies the maximum number of
+   * Classic API Message Queues.
+   */
+  #define CONFIGURE_MAXIMUM_MESSAGE_QUEUES             0
+  /*
+   * This macro is calculated to specify the RTEMS Workspace required for
+   * the Classic API Message Queues.
+   */
+  #define _CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(_queues) 0
+#else
+  #define _CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(_queues) \
+    _Configure_Object_RAM(_queues, sizeof(Message_queue_Control) )
+#endif
+
+#ifndef CONFIGURE_MAXIMUM_PARTITIONS
+  /**
+   * This configuration parameter specifies the maximum number of
+   * Classic API Partitions.
+   */
+  #define CONFIGURE_MAXIMUM_PARTITIONS                 0
   /*
    * This macro is calculated to specify the memory required for
-   * Classic API Semaphores using MRSP. This is only available in
-   * SMP configurations.
+   * Classic API
    */
-  #if !defined(RTEMS_SMP) || \
-    !defined(CONFIGURE_MAXIMUM_MRSP_SEMAPHORES)
-    #define _CONFIGURE_MEMORY_FOR_MRSP_SEMAPHORES 0
-  #else
-    #define _CONFIGURE_MEMORY_FOR_MRSP_SEMAPHORES \
-      CONFIGURE_MAXIMUM_MRSP_SEMAPHORES * \
-        _Configure_From_workspace( \
-          RTEMS_ARRAY_SIZE(_Scheduler_Table) * sizeof(Priority_Control) \
-        )
-  #endif
+  #define _CONFIGURE_MEMORY_FOR_PARTITIONS(_partitions) 0
+#else
+  #define _CONFIGURE_MEMORY_FOR_PARTITIONS(_partitions) \
+    _Configure_Object_RAM(_partitions, sizeof(Partition_Control) )
+#endif
 
+#ifndef CONFIGURE_MAXIMUM_REGIONS
+  /**
+   * This configuration parameter specifies the maximum number of
+   * Classic API Regions.
+   */
+  #define CONFIGURE_MAXIMUM_REGIONS              0
   /*
    * This macro is calculated to specify the memory required for
-   * Classic API Semaphores.
-   *
-   * If there are no user or support semaphores defined, then we can assume
-   * that no memory need be allocated at all for semaphores.
+   * Classic API Regions.
    */
-  #if CONFIGURE_MAXIMUM_SEMAPHORES == 0
-    #define _CONFIGURE_MEMORY_FOR_SEMAPHORES(_semaphores) 0
-  #else
-    #define _CONFIGURE_MEMORY_FOR_SEMAPHORES(_semaphores) \
-      _Configure_Object_RAM(_semaphores, sizeof(Semaphore_Control) ) + \
-        _CONFIGURE_MEMORY_FOR_MRSP_SEMAPHORES
-  #endif
+  #define _CONFIGURE_MEMORY_FOR_REGIONS(_regions) 0
+#else
+  #define _CONFIGURE_MEMORY_FOR_REGIONS(_regions) \
+    _Configure_Object_RAM(_regions, sizeof(Region_Control) )
+#endif
 
-  #ifndef CONFIGURE_MAXIMUM_MESSAGE_QUEUES
-    /**
-     * This configuration parameter specifies the maximum number of
-     * Classic API Message Queues.
-     */
-    #define CONFIGURE_MAXIMUM_MESSAGE_QUEUES             0
-    /*
-     * This macro is calculated to specify the RTEMS Workspace required for
-     * the Classic API Message Queues.
-     */
-    #define _CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(_queues) 0
-  #else
-    #define _CONFIGURE_MEMORY_FOR_MESSAGE_QUEUES(_queues) \
-      _Configure_Object_RAM(_queues, sizeof(Message_queue_Control) )
-  #endif
+#ifndef CONFIGURE_MAXIMUM_PORTS
+  /**
+   * This configuration parameter specifies the maximum number of
+   * Classic API Dual-Ported Memory Ports.
+   */
+  #define CONFIGURE_MAXIMUM_PORTS            0
+  /**
+   * This macro is calculated to specify the memory required for
+   * Classic API Dual-Ported Memory Ports.
+   */
+  #define _CONFIGURE_MEMORY_FOR_PORTS(_ports) 0
+#else
+  #define _CONFIGURE_MEMORY_FOR_PORTS(_ports) \
+    _Configure_Object_RAM(_ports, sizeof(Dual_ported_memory_Control) )
+#endif
 
-  #ifndef CONFIGURE_MAXIMUM_PARTITIONS
-    /**
-     * This configuration parameter specifies the maximum number of
-     * Classic API Partitions.
-     */
-    #define CONFIGURE_MAXIMUM_PARTITIONS                 0
-    /*
-     * This macro is calculated to specify the memory required for
-     * Classic API
-     */
-    #define _CONFIGURE_MEMORY_FOR_PARTITIONS(_partitions) 0
-  #else
-    #define _CONFIGURE_MEMORY_FOR_PARTITIONS(_partitions) \
-      _Configure_Object_RAM(_partitions, sizeof(Partition_Control) )
-  #endif
+#ifndef CONFIGURE_MAXIMUM_PERIODS
+  /**
+   * This configuration parameter specifies the maximum number of
+   * Classic API Rate Monotonic Periods.
+   */
+  #define CONFIGURE_MAXIMUM_PERIODS              0
+  /*
+   * This macro is calculated to specify the memory required for
+   * Classic API Rate Monotonic Periods.
+   */
+  #define _CONFIGURE_MEMORY_FOR_PERIODS(_periods) 0
+#else
+  #define _CONFIGURE_MEMORY_FOR_PERIODS(_periods) \
+    _Configure_Object_RAM(_periods, sizeof(Rate_monotonic_Control) )
+#endif
 
-  #ifndef CONFIGURE_MAXIMUM_REGIONS
-    /**
-     * This configuration parameter specifies the maximum number of
-     * Classic API Regions.
-     */
-    #define CONFIGURE_MAXIMUM_REGIONS              0
-    /*
-     * This macro is calculated to specify the memory required for
-     * Classic API Regions.
-     */
-    #define _CONFIGURE_MEMORY_FOR_REGIONS(_regions) 0
-  #else
-    #define _CONFIGURE_MEMORY_FOR_REGIONS(_regions) \
-      _Configure_Object_RAM(_regions, sizeof(Region_Control) )
-  #endif
+/**
+ * This configuration parameter specifies the maximum number of
+ * Classic API Barriers.
+ */
+#ifndef CONFIGURE_MAXIMUM_BARRIERS
+  #define CONFIGURE_MAXIMUM_BARRIERS               0
+#endif
 
-  #ifndef CONFIGURE_MAXIMUM_PORTS
-    /**
-     * This configuration parameter specifies the maximum number of
-     * Classic API Dual-Ported Memory Ports.
-     */
-    #define CONFIGURE_MAXIMUM_PORTS            0
-    /**
-     * This macro is calculated to specify the memory required for
-     * Classic API Dual-Ported Memory Ports.
-     */
-    #define _CONFIGURE_MEMORY_FOR_PORTS(_ports) 0
-  #else
-    #define _CONFIGURE_MEMORY_FOR_PORTS(_ports) \
-      _Configure_Object_RAM(_ports, sizeof(Dual_ported_memory_Control) )
-  #endif
+/*
+ * This macro is calculated to specify the number of Classic API
+ * Barriers required by the application and configured capabilities.
+ */
+#define _CONFIGURE_BARRIERS \
+   (CONFIGURE_MAXIMUM_BARRIERS + _CONFIGURE_BARRIERS_FOR_FIFOS)
 
-  #ifndef CONFIGURE_MAXIMUM_PERIODS
-    /**
-     * This configuration parameter specifies the maximum number of
-     * Classic API Rate Monotonic Periods.
-     */
-    #define CONFIGURE_MAXIMUM_PERIODS              0
-    /*
-     * This macro is calculated to specify the memory required for
-     * Classic API Rate Monotonic Periods.
-     */
-  #define _CONFIGURE_MEMORY_FOR_PERIODS(_periods) 0
+/*
+ * This macro is calculated to specify the memory required for
+ * Classic API Barriers.
+ */
+#if _CONFIGURE_BARRIERS == 0
+  #define _CONFIGURE_MEMORY_FOR_BARRIERS(_barriers) 0
 #else
-    #define _CONFIGURE_MEMORY_FOR_PERIODS(_periods) \
-      _Configure_Object_RAM(_periods, sizeof(Rate_monotonic_Control) )
-  #endif
+  #define _CONFIGURE_MEMORY_FOR_BARRIERS(_barriers) \
+    _Configure_Object_RAM(_barriers, sizeof(Barrier_Control) )
+#endif
 
+#ifndef CONFIGURE_MAXIMUM_USER_EXTENSIONS
   /**
    * This configuration parameter specifies the maximum number of
-   * Classic API Barriers.
+   * Classic API User Extensions.
    */
-  #ifndef CONFIGURE_MAXIMUM_BARRIERS
-    #define CONFIGURE_MAXIMUM_BARRIERS               0
-  #endif
-
-  /*
-   * This macro is calculated to specify the number of Classic API
-   * Barriers required by the application and configured capabilities.
-   */
-  #define _CONFIGURE_BARRIERS \
-     (CONFIGURE_MAXIMUM_BARRIERS + _CONFIGURE_BARRIERS_FOR_FIFOS)
-
+  #define CONFIGURE_MAXIMUM_USER_EXTENSIONS                 0
   /*
    * This macro is calculated to specify the memory required for
-   * Classic API Barriers.
+   * Classic API User Extensions.
    */
-  #if _CONFIGURE_BARRIERS == 0
-    #define _CONFIGURE_MEMORY_FOR_BARRIERS(_barriers) 0
-  #else
-    #define _CONFIGURE_MEMORY_FOR_BARRIERS(_barriers) \
-      _Configure_Object_RAM(_barriers, sizeof(Barrier_Control) )
-  #endif
+  #define _CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(_extensions) 0
+#else
+  #define _CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(_extensions) \
+    _Configure_Object_RAM(_extensions, sizeof(Extension_Control) )
+#endif
 
-  #ifndef CONFIGURE_MAXIMUM_USER_EXTENSIONS
-    /**
-     * This configuration parameter specifies the maximum number of
-     * Classic API User Extensions.
-     */
-    #define CONFIGURE_MAXIMUM_USER_EXTENSIONS                 0
-    /*
-     * This macro is calculated to specify the memory required for
-     * Classic API User Extensions.
-     */
-    #define _CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(_extensions) 0
-  #else
-    #define _CONFIGURE_MEMORY_FOR_USER_EXTENSIONS(_extensions) \
-      _Configure_Object_RAM(_extensions, sizeof(Extension_Control) )
-  #endif
-  /**@}*/ /* end of Classic API Configuration */
+/**@}*/ /* end of Classic API Configuration */
 
-  /**
-   * @defgroup ConfigurationGeneral General System Configuration
-   *
-   * @ingroup Configuration
-   *
-   * This module contains configuration parameters that are independent
-   * of any API but impact general system configuration.
-   */
-  /**@{*/
+/**
+ * @defgroup ConfigurationGeneral General System Configuration
+ *
+ * @ingroup Configuration
+ *
+ * This module contains configuration parameters that are independent
+ * of any API but impact general system configuration.
+ */
+/**@{*/
 
-  /** The configures the number of microseconds per clock tick. */
-  #ifndef CONFIGURE_MICROSECONDS_PER_TICK
-    #define CONFIGURE_MICROSECONDS_PER_TICK \
-            RTEMS_MILLISECONDS_TO_MICROSECONDS(10)
-  #endif
+/** The configures the number of microseconds per clock tick. */
+#ifndef CONFIGURE_MICROSECONDS_PER_TICK
+  #define CONFIGURE_MICROSECONDS_PER_TICK \
+          RTEMS_MILLISECONDS_TO_MICROSECONDS(10)
+#endif
 
-  #if 1000000 % CONFIGURE_MICROSECONDS_PER_TICK != 0
-    #warning "The clock ticks per second is not an integer"
-  #endif
+#if 1000000 % CONFIGURE_MICROSECONDS_PER_TICK != 0
+  #warning "The clock ticks per second is not an integer"
+#endif
 
-  #if CONFIGURE_MICROSECONDS_PER_TICK <= 0
-    #error "The CONFIGURE_MICROSECONDS_PER_TICK must be positive"
-  #endif
+#if CONFIGURE_MICROSECONDS_PER_TICK <= 0
+  #error "The CONFIGURE_MICROSECONDS_PER_TICK must be positive"
+#endif
 
-  #define _CONFIGURE_TICKS_PER_SECOND (1000000 / CONFIGURE_MICROSECONDS_PER_TICK)
+#define _CONFIGURE_TICKS_PER_SECOND (1000000 / CONFIGURE_MICROSECONDS_PER_TICK)
 
-  /** The configures the number of clock ticks per timeslice. */
-  #ifndef CONFIGURE_TICKS_PER_TIMESLICE
-    #define CONFIGURE_TICKS_PER_TIMESLICE        50
-  #endif
+/** The configures the number of clock ticks per timeslice. */
+#ifndef CONFIGURE_TICKS_PER_TIMESLICE
+  #define CONFIGURE_TICKS_PER_TIMESLICE        50
+#endif
 
 /**@}*/ /* end of General Configuration */
 
@@ -3111,8 +3111,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
   };
 #endif
 
-#endif /* CONFIGURE_HAS_OWN_CONFIGURATION_TABLE */
-
 #if defined(RTEMS_SMP)
  /*
   * Instantiate the Per CPU information based upon the user configuration.
@@ -3436,6 +3434,10 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
   #error "Maximum priority configured higher than supported by target."
 #endif
 
+#ifdef CONFIGURE_HAS_OWN_CONFIGURATION_TABLE
+  #warning "The CONFIGURE_HAS_OWN_CONFIGURATION_TABLE configuration option is obsolete since RTEMS 5.1"
+#endif
+
 #ifdef CONFIGURE_HAS_OWN_FILESYSTEM_TABLE
   #warning "The CONFIGURE_HAS_OWN_FILESYSTEM_TABLE configuration option is obsolete since RTEMS 5.1"
 #endif
-- 
2.13.7




More information about the devel mailing list