[PATCH] c-user: Use new template for integer config opts

Sebastian Huber sebastian.huber at embedded-brains.de
Fri Mar 27 17:34:21 UTC 2020


Try to bring all descriptions up to date.  Add cross-references to
several options.  Clarify configuration value constraints.

Close #3901.
---
 c-user/config/bdbuf.rst             | 192 ++++++++++++---------
 c-user/config/classic-api.rst       | 306 +++++++++++++++++++++++---------
 c-user/config/classic-init-task.rst | 109 ++++++------
 c-user/config/device-driver.rst     |  25 ++-
 c-user/config/event-record.rst      |  31 ++--
 c-user/config/filesystem.rst        |  37 ++--
 c-user/config/general.rst           | 335 +++++++++++++++++++++---------------
 c-user/config/idle-task.rst         |  26 ++-
 c-user/config/mpci.rst              |  62 +++----
 c-user/config/posix-api.rst         | 242 ++++++++++++++++++--------
 c-user/config/posix-init-thread.rst |  29 ++--
 c-user/config/scheduler-general.rst |  44 +++--
 12 files changed, 912 insertions(+), 526 deletions(-)

diff --git a/c-user/config/bdbuf.rst b/c-user/config/bdbuf.rst
index 84b1d33..56a47e0 100644
--- a/c-user/config/bdbuf.rst
+++ b/c-user/config/bdbuf.rst
@@ -44,17 +44,23 @@ CONFIGURE_BDBUF_BUFFER_MAX_SIZE
 CONSTANT:
     ``CONFIGURE_BDBUF_BUFFER_MAX_SIZE``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    It must be positive and an integral multiple of the buffer minimum size.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is 4096 bytes.
+    The default value is 4096.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be an integral multiple of :ref:`CONFIGURE_BDBUF_BUFFER_MIN_SIZE`.
 
 DESCRIPTION:
-    Defines the maximum size of a buffer in bytes.
+    The value of this configuration option defines the maximum size of a buffer
+    in bytes.
 
 NOTES:
     None.
@@ -69,17 +75,19 @@ CONFIGURE_BDBUF_BUFFER_MIN_SIZE
 CONSTANT:
     ``CONFIGURE_BDBUF_BUFFER_MIN_SIZE``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is 512 bytes.
+    The default value is 512.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must be greater than or equal to 0
+    and less than or equal to ``UINT32_MAX``.
 
 DESCRIPTION:
-    Defines the minimum size of a buffer in bytes.
+    The value of this configuration option defines the minimum size of a buffer
+    in bytes.
 
 NOTES:
     None.
@@ -94,17 +102,19 @@ CONFIGURE_BDBUF_CACHE_MEMORY_SIZE
 CONSTANT:
     ``CONFIGURE_BDBUF_CACHE_MEMORY_SIZE``
 
-DATA TYPE:
-    Unsigned integer (``size_t``).
-
-RANGE:
-    Positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is 32768 bytes.
+    The default value is 32768.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must be greater than or equal to 0
+    and less than or equal to ``SIZE_MAX``.
 
 DESCRIPTION:
-    Size of the cache memory in bytes.
+    The value of this configuration option defines the size of the cache memory
+    in bytes.
 
 NOTES:
     None.
@@ -119,17 +129,19 @@ CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS
 CONSTANT:
     ``CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must be greater than or equal to 0
+    and less than or equal to ``UINT32_MAX``.
+
 DESCRIPTION:
-    Defines the maximum blocks per read-ahead request.
+    The value of this configuration option defines the maximum blocks per
+    read-ahead request.
 
 NOTES:
     A value of 0 disables the read-ahead task (default).  The read-ahead task
@@ -146,17 +158,19 @@ CONFIGURE_BDBUF_MAX_WRITE_BLOCKS
 CONSTANT:
     ``CONFIGURE_BDBUF_MAX_WRITE_BLOCKS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 16.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must be greater than or equal to 0
+    and less than or equal to ``UINT32_MAX``.
+
 DESCRIPTION:
-    Defines the maximum blocks per write request.
+    The value of this configuration option defines the maximum blocks per write
+    request.
 
 NOTES:
     None.
@@ -171,17 +185,18 @@ CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
 CONSTANT:
     ``CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY``
 
-DATA TYPE:
-    Task priority (``rtems_task_priority``).
-
-RANGE:
-    Valid task priority.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 15.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must be a valid task priority of the
+    configured scheduler.
+
 DESCRIPTION:
-    Defines the read-ahead task priority.
+    The value of this configuration option defines the read-ahead task priority.
 
 NOTES:
     None.
@@ -196,17 +211,30 @@ CONFIGURE_BDBUF_TASK_STACK_SIZE
 CONSTANT:
     ``CONFIGURE_BDBUF_TASK_STACK_SIZE``
 
-DATA TYPE:
-    Unsigned integer (``size_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is RTEMS_MINIMUM_STACK_SIZE.
+    The default value is ``RTEMS_MINIMUM_STACK_SIZE``.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to ``SIZE_MAX``.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
+    * It must be small enough so that the task stack space calculation carried
+      out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+      ``uintptr_t``.
 
 DESCRIPTION:
-    Defines the task stack size of the Block Device Cache tasks in bytes.
+    The value of this configuration option defines the task stack size of the
+    Block Device Cache tasks in bytes.
 
 NOTES:
     None.
@@ -221,17 +249,19 @@ CONFIGURE_SWAPOUT_BLOCK_HOLD
 CONSTANT:
     ``CONFIGURE_SWAPOUT_BLOCK_HOLD``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is 1000 milliseconds.
+    The default value is 1000.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must be greater than or equal to 0
+    and less than or equal to ``UINT32_MAX``.
 
 DESCRIPTION:
-    Defines the swapout task maximum block hold time in milliseconds.
+    The value of this configuration option defines the swapout task maximum block
+    hold time in milliseconds.
 
 NOTES:
     None.
@@ -246,17 +276,19 @@ CONFIGURE_SWAPOUT_SWAP_PERIOD
 CONSTANT:
     ``CONFIGURE_SWAPOUT_SWAP_PERIOD``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is 250 milliseconds.
+    The default value is 250.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must be greater than or equal to 0
+    and less than or equal to ``UINT32_MAX``.
 
 DESCRIPTION:
-    Defines the swapout task swap period in milliseconds.
+    The value of this configuration option defines the swapout task swap period
+    in milliseconds.
 
 NOTES:
     None.
@@ -271,17 +303,18 @@ CONFIGURE_SWAPOUT_TASK_PRIORITY
 CONSTANT:
     ``CONFIGURE_SWAPOUT_TASK_PRIORITY``
 
-DATA TYPE:
-    Task priority (``rtems_task_priority``).
-
-RANGE:
-    Valid task priority.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 15.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must be a valid Classic API task
+    priority.  The set of valid task priorities is scheduler-specific.
+
 DESCRIPTION:
-    Defines the swapout task priority.
+    The value of this configuration option defines the swapout task priority.
 
 NOTES:
     None.
@@ -296,17 +329,19 @@ CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY
 CONSTANT:
     ``CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY``
 
-DATA TYPE:
-    Task priority (``rtems_task_priority``).
-
-RANGE:
-    Valid task priority.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 15.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must be a valid Classic API task
+    priority.  The set of valid task priorities is scheduler-specific.
+
 DESCRIPTION:
-    Defines the swapout worker task priority.
+    The value of this configuration option defines the swapout worker task
+    priority.
 
 NOTES:
     None.
@@ -321,17 +356,18 @@ CONFIGURE_SWAPOUT_WORKER_TASKS
 CONSTANT:
     ``CONFIGURE_SWAPOUT_WORKER_TASKS``
 
-DATA TYPE:
-    Unsigned integer (``size_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must be greater than or equal to 0
+    and less than or equal to ``UINT32_MAX``.
+
 DESCRIPTION:
-    Defines the swapout worker task count.
+    The value of this configuration option defines the swapout worker task count.
 
 NOTES:
     None.
diff --git a/c-user/config/classic-api.rst b/c-user/config/classic-api.rst
index 3647d05..172aec2 100644
--- a/c-user/config/classic-api.rst
+++ b/c-user/config/classic-api.rst
@@ -17,21 +17,35 @@ CONFIGURE_MAXIMUM_BARRIERS
 CONSTANT:
     ``CONFIGURE_MAXIMUM_BARRIERS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to 65535.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
+    * The value may be defined through :c:func:`rtems_resource_unlimited` the
+      enable unlimited objects for this object class, if the value passed to
+      :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+      configuration option.
+
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_BARRIERS`` is the maximum number of Classic API
-    Barriers that can be concurrently active.
+    The value of this configuration option defines the maximum number of Classic
+    API Barriers that can be concurrently active.
 
 NOTES:
-    This object class can be configured in unlimited allocation mode.
+    This object class can be configured in unlimited allocation mode, see
+    :ref:`ConfigUnlimitedObjects`.
 
 .. index:: CONFIGURE_MAXIMUM_MESSAGE_QUEUES
 
@@ -43,23 +57,37 @@ CONFIGURE_MAXIMUM_MESSAGE_QUEUES
 CONSTANT:
     ``CONFIGURE_MAXIMUM_MESSAGE_QUEUES``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to 65535.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
+    * The value may be defined through :c:func:`rtems_resource_unlimited` the
+      enable unlimited objects for this object class, if the value passed to
+      :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+      configuration option.
+
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_MESSAGE_QUEUES`` is the maximum number of Classic API
-    Message Queues that can be concurrently active.
+    The value of this configuration option defines the maximum number of Classic
+    API Message Queues that can be concurrently active.
 
 NOTES:
-    This object class can be configured in unlimited allocation mode.  You have
-    to account for the memory used to store the messages of each message queue,
-    see :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
+    This object class can be configured in unlimited allocation mode, see
+    :ref:`ConfigUnlimitedObjects`.  You have to account for the memory used to
+    store the messages of each message queue, see
+    :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
 
 .. index:: CONFIGURE_MAXIMUM_PARTITIONS
 
@@ -71,21 +99,35 @@ CONFIGURE_MAXIMUM_PARTITIONS
 CONSTANT:
     ``CONFIGURE_MAXIMUM_PARTITIONS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to 65535.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
+    * The value may be defined through :c:func:`rtems_resource_unlimited` the
+      enable unlimited objects for this object class, if the value passed to
+      :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+      configuration option.
+
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_PARTITIONS`` is the maximum number of Classic API
-    Partitions that can be concurrently active.
+    The value of this configuration option defines the maximum number of Classic
+    API Partitions that can be concurrently active.
 
 NOTES:
-    This object class can be configured in unlimited allocation mode.
+    This object class can be configured in unlimited allocation mode, see
+    :ref:`ConfigUnlimitedObjects`.
 
 .. index:: CONFIGURE_MAXIMUM_PERIODS
 
@@ -97,21 +139,35 @@ CONFIGURE_MAXIMUM_PERIODS
 CONSTANT:
     ``CONFIGURE_MAXIMUM_PERIODS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to 65535.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
+    * The value may be defined through :c:func:`rtems_resource_unlimited` the
+      enable unlimited objects for this object class, if the value passed to
+      :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+      configuration option.
+
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_PERIODS`` is the maximum number of Classic API Periods
-    that can be concurrently active.
+    The value of this configuration option defines the maximum number of Classic
+    API Periods that can be concurrently active.
 
 NOTES:
-    This object class can be configured in unlimited allocation mode.
+    This object class can be configured in unlimited allocation mode, see
+    :ref:`ConfigUnlimitedObjects`.
 
 .. index:: CONFIGURE_MAXIMUM_PORTS
 
@@ -123,21 +179,35 @@ CONFIGURE_MAXIMUM_PORTS
 CONSTANT:
     ``CONFIGURE_MAXIMUM_PORTS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to 65535.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
+    * The value may be defined through :c:func:`rtems_resource_unlimited` the
+      enable unlimited objects for this object class, if the value passed to
+      :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+      configuration option.
+
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_PORTS`` is the maximum number of Classic API Ports that
-    can be concurrently active.
+    The value of this configuration option defines the maximum number of Classic
+    API Ports that can be concurrently active.
 
 NOTES:
-    This object class can be configured in unlimited allocation mode.
+    This object class can be configured in unlimited allocation mode, see
+    :ref:`ConfigUnlimitedObjects`.
 
 .. index:: CONFIGURE_MAXIMUM_REGIONS
 
@@ -149,21 +219,35 @@ CONFIGURE_MAXIMUM_REGIONS
 CONSTANT:
     ``CONFIGURE_MAXIMUM_REGIONS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to 65535.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
+    * The value may be defined through :c:func:`rtems_resource_unlimited` the
+      enable unlimited objects for this object class, if the value passed to
+      :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+      configuration option.
+
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_REGIONS`` is the maximum number of Classic API Regions
-    that can be concurrently active.
+    The value of this configuration option defines the maximum number of Classic
+    API Regions that can be concurrently active.
 
 NOTES:
-    None.
+    This object class can be configured in unlimited allocation mode, see
+    :ref:`ConfigUnlimitedObjects`.
 
 .. index:: CONFIGURE_MAXIMUM_SEMAPHORES
 
@@ -175,21 +259,35 @@ CONFIGURE_MAXIMUM_SEMAPHORES
 CONSTANT:
     ``CONFIGURE_MAXIMUM_SEMAPHORES``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to 65535.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
+    * The value may be defined through :c:func:`rtems_resource_unlimited` the
+      enable unlimited objects for this object class, if the value passed to
+      :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+      configuration option.
+
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_SEMAPHORES`` is the maximum number of Classic API
-    Semaphores that can be concurrently active.
+    The value of this configuration option defines the maximum number of Classic
+    API Semaphore that can be concurrently active.
 
 NOTES:
-    This object class can be configured in unlimited allocation mode.
+    This object class can be configured in unlimited allocation mode, see
+    :ref:`ConfigUnlimitedObjects`.
 
     In SMP configurations, the size of a Semaphore Control Block depends on the
     scheduler count (see :ref:`ConfigurationSchedulerTable`).  The semaphores
@@ -205,21 +303,39 @@ CONFIGURE_MAXIMUM_TASKS
 CONSTANT:
     ``CONFIGURE_MAXIMUM_TASKS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is ``0``.
+    The default value is 0.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to 65535.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
+    * It must be small enough so that the task stack space calculation carried
+      out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+      ``uintptr_t``.
+
+    * The value may be defined through :c:func:`rtems_resource_unlimited` the
+      enable unlimited objects for this object class, if the value passed to
+      :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+      configuration option.
 
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_TASKS`` is the maximum number of Classic API Tasks that
-    can be concurrently active.
+    The value of this configuration option defines the maximum number of Classic
+    API Tasks that can be concurrently active.
 
 NOTES:
-    This object class can be configured in unlimited allocation mode.
+    This object class can be configured in unlimited allocation mode, see
+    :ref:`ConfigUnlimitedObjects`.
 
     The calculations for the required memory in the RTEMS Workspace for tasks
     assume that each task has a minimum stack size and has floating point
@@ -230,7 +346,7 @@ NOTES:
     ``CONFIGURE_EXTRA_TASK_STACKS``.
 
     The maximum number of POSIX threads is specified by
-    :ref:`CONFIGURE_MAXIMUM_POSIX_THREADS <CONFIGURE_MAXIMUM_POSIX_THREADS>`.
+    :ref:`CONFIGURE_MAXIMUM_POSIX_THREADS`.
 
     A future enhancement to ``<rtems/confdefs.h>`` could be to eliminate the
     assumption that all tasks have floating point enabled. This would require
@@ -247,21 +363,35 @@ CONFIGURE_MAXIMUM_TIMERS
 CONSTANT:
     ``CONFIGURE_MAXIMUM_TIMERS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to 65535.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
+    * The value may be defined through :c:func:`rtems_resource_unlimited` the
+      enable unlimited objects for this object class, if the value passed to
+      :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+      configuration option.
+
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_TIMERS`` is the maximum number of Classic API Timers
-    that can be concurrently active.
+    The value of this configuration option defines the maximum number of Classic
+    API Timers that can be concurrently active.
 
 NOTES:
-    This object class can be configured in unlimited allocation mode.
+    This object class can be configured in unlimited allocation mode, see
+    :ref:`ConfigUnlimitedObjects`.
 
 .. index:: CONFIGURE_MAXIMUM_USER_EXTENSIONS
 
@@ -273,18 +403,26 @@ CONFIGURE_MAXIMUM_USER_EXTENSIONS
 CONSTANT:
     ``CONFIGURE_MAXIMUM_USER_EXTENSIONS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to 65535.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_USER_EXTENSIONS`` is the maximum number of Classic API
-    User Extensions that can be concurrently active.
+    The value of this configuration option defines the maximum number of Classic
+    API User Extensions that can be concurrently active.
 
 NOTES:
-    This object class can be configured in unlimited allocation mode.
+    This object class cannot be configured in unlimited allocation mode.
diff --git a/c-user/config/classic-init-task.rst b/c-user/config/classic-init-task.rst
index 8addf9f..8f699ee 100644
--- a/c-user/config/classic-init-task.rst
+++ b/c-user/config/classic-init-task.rst
@@ -18,18 +18,19 @@ CONFIGURE_INIT_TASK_ARGUMENTS
 CONSTANT:
     ``CONFIGURE_INIT_TASK_ARGUMENTS``
 
-DATA TYPE:
-    RTEMS Task Argument (``rtems_task_argument``).
-
-RANGE:
-    Complete range of the type.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must be a valid integer of type
+    ``rtems_task_argument``.
+
 DESCRIPTION:
-    ``CONFIGURE_INIT_TASK_ARGUMENTS`` is the task argument of the single
-    initialization task defined by the Classic API Initialization Tasks Table.
+    The value of this configuration option defines task argument of the Classic
+    API initialization task.
 
 NOTES:
     None.
@@ -44,18 +45,18 @@ CONFIGURE_INIT_TASK_ATTRIBUTES
 CONSTANT:
     ``CONFIGURE_INIT_TASK_ATTRIBUTES``
 
-DATA TYPE:
-    RTEMS Attributes (``rtems_attribute``).
-
-RANGE:
-    Valid task attribute sets.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is ``RTEMS_DEFAULT_ATTRIBUTES``.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must be a valid task attribute set.
+
 DESCRIPTION:
-    ``CONFIGURE_INIT_TASK_ATTRIBUTES`` is the task attributes of the single
-    initialization task defined by the Classic API Initialization Tasks Table.
+    The value of this configuration option defines the task attributes of the
+    Classic API initialization task.
 
 NOTES:
     None.
@@ -98,19 +99,19 @@ CONFIGURE_INIT_TASK_INITIAL_MODES
 CONSTANT:
     ``CONFIGURE_INIT_TASK_INITIAL_MODES``
 
-DATA TYPE:
-    RTEMS Mode (``rtems_mode``).
-
-RANGE:
-    Valid task mode sets.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is ``RTEMS_NO_PREEMPT``.
+    In SMP  configurations, the default value is ``RTEMS_DEFAULT_MODES``,
+    otherwise the default value is ``RTEMS_NO_PREEMPT``.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must be a valid task mode set.
 
 DESCRIPTION:
-    ``CONFIGURE_INIT_TASK_INITIAL_MODES`` is the initial execution mode of the
-    single initialization task defined by the Classic API Initialization Tasks
-    Table.
+    The value of this configuration option defines the initial execution mode of
+    the Classic API initialization task.
 
 NOTES:
     None.
@@ -125,21 +126,22 @@ CONFIGURE_INIT_TASK_NAME
 CONSTANT:
     ``CONFIGURE_INIT_TASK_NAME``
 
-DATA TYPE:
-    RTEMS Name (``rtems_name``).
-
-RANGE:
-    Any value.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is ``rtems_build_name( 'U', 'I', '1', ' ' )``.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must be a valid integer of type
+    ``rtems_name``.
+
 DESCRIPTION:
-    ``CONFIGURE_INIT_TASK_NAME`` is the name of the single initialization task
-    defined by the Classic API Initialization Tasks Table.
+    The value of this configuration option defines the name of the Classic API
+    initialization task.
 
 NOTES:
-    None.
+    Use :c:func:`rtems_build_name` to define the task name.
 
 .. index:: CONFIGURE_INIT_TASK_PRIORITY
 
@@ -151,18 +153,19 @@ CONFIGURE_INIT_TASK_PRIORITY
 CONSTANT:
     ``CONFIGURE_INIT_TASK_PRIORITY``
 
-DATA TYPE:
-    RTEMS Task Priority (``rtems_task_priority``).
-
-RANGE:
-    One (1) to the maximum user priority value of the scheduler.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is 1, which is the highest priority in the Classic API.
+    The default value is 1.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must be a valid task priority.  The
+    set of valid task priorities is scheduler-specific.
 
 DESCRIPTION:
-    ``CONFIGURE_INIT_TASK_PRIORITY`` is the initial priority of the single
-    initialization task defined by the Classic API Initialization Tasks Table.
+    The value of this configuration option defines the initial priority of the
+    Classic API initialization task.
 
 NOTES:
     None.
@@ -177,24 +180,28 @@ CONFIGURE_INIT_TASK_STACK_SIZE
 CONSTANT:
     ``CONFIGURE_INIT_TASK_STACK_SIZE``
 
-DATA TYPE:
-    Unsigned integer (``size_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is RTEMS_MINIMUM_STACK_SIZE.
+    The default value is :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+
+    * It must be small enough so that the task stack space calculation carried
+      out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+      ``uintptr_t``.
 
 DESCRIPTION:
-    ``CONFIGURE_INIT_TASK_STACK_SIZE`` is the stack size of the single
-    initialization task defined by the Classic API Initialization Tasks Table.
+    The value of this configuration option defines the task stack size of the
+    Classic API initialization task.
 
 NOTES:
-    If the stack size specified is greater than the configured minimum, it must
-    be accounted for in ``CONFIGURE_EXTRA_TASK_STACKS``.  See :ref:`Reserve
-    Task/Thread Stack Memory Above Minimum` for more information about
-    ``CONFIGURE_EXTRA_TASK_STACKS``.
+    None.
 
 .. index:: CONFIGURE_RTEMS_INIT_TASKS_TABLE
 
diff --git a/c-user/config/device-driver.rst b/c-user/config/device-driver.rst
index b727a8f..062ee66 100644
--- a/c-user/config/device-driver.rst
+++ b/c-user/config/device-driver.rst
@@ -478,24 +478,31 @@ CONFIGURE_MAXIMUM_DRIVERS
 CONSTANT:
     ``CONFIGURE_MAXIMUM_DRIVERS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     This is computed by default, and is set to the number of device drivers
     configured using the ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER``
-    configuration parameters.
+    configuration options.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to ``SIZE_MAX``.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
 
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_DRIVERS`` is defined as the number of device drivers
-    per node.
+    The value of this configuration option defines the number of device drivers.
 
 NOTES:
     If the application will dynamically install device drivers, then this
     configuration parameter must be larger than the number of statically
     configured device drivers. Drivers configured using the
-    ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER`` configuration parameters are
+    ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER`` configuration options are
     statically installed.
diff --git a/c-user/config/event-record.rst b/c-user/config/event-record.rst
index edd8722..8f6eef5 100644
--- a/c-user/config/event-record.rst
+++ b/c-user/config/event-record.rst
@@ -110,19 +110,30 @@ CONFIGURE_RECORD_PER_PROCESSOR_ITEMS
 CONSTANT:
     ``CONFIGURE_RECORD_PER_PROCESSOR_ITEMS``
 
-DATA TYPE:
-    Unsigned integer (``unsigned int``).
-
-RANGE:
-    A power of two greater than or equal to 16.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    This is not defined by default.
+    The default value is 0.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 16.
+
+    * It must be less than or equal to ``SIZE_MAX``.
+
+    * It must be a power of two.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
 
 DESCRIPTION:
-    If defined, then a record item buffer of the specified item count is
-    statically allocated for each configured processor
-    (:ref:`CONFIGURE_MAXIMUM_PROCESSORS <CONFIGURE_MAXIMUM_PROCESSORS>`).
+    The value of this configuration option defines the event record item count
+    per processor.
 
 NOTES:
-    None.
+    The event record buffers are statically allocated for each configured
+    processor (:ref:`CONFIGURE_MAXIMUM_PROCESSORS`).  If the value of this
+    configuration option is zero, then nothing is allocated.
diff --git a/c-user/config/filesystem.rst b/c-user/config/filesystem.rst
index 3a7b7fe..f937d37 100644
--- a/c-user/config/filesystem.rst
+++ b/c-user/config/filesystem.rst
@@ -421,26 +421,28 @@ CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
 CONSTANT:
     ``CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK``
 
-DATA TYPE:
-    Boolean feature macro.
-
-RANGE:
-    Valid values for this configuration parameter are a power of two (2)
-    between 16 and 512 inclusive.  In other words, valid values are 16, 32, 64,
-    128, 256,and 512.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default IMFS block size is 128 bytes.
+    The default value is 128.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must be
+    an element of {16, 32, 64, 128, 256, 512}.
 
 DESCRIPTION:
-    This configuration parameter specifies the block size for in-memory files
-    managed by the IMFS. The configured block size has two impacts. The first
-    is the average amount of unused memory in the last block of each file. For
-    example, when the block size is 512, on average one-half of the last block
-    of each file will remain unused and the memory is wasted. In contrast, when
-    the block size is 16, the average unused memory per file is only 8
-    bytes. However, it requires more allocations for the same size file and
-    thus more overhead per block for the dynamic memory management.
+    The value of this configuration option defines the block size for in-memory
+    files managed by the IMFS.
+
+NOTES:
+    The configured block size has two impacts. The first is the average amount of
+    unused memory in the last block of each file.  For example, when the block
+    size is 512, on average one-half of the last block of each file will remain
+    unused and the memory is wasted. In contrast, when the block size is 16, the
+    average unused memory per file is only 8 bytes. However, it requires more
+    allocations for the same size file and thus more overhead per block for the
+    dynamic memory management.
 
     Second, the block size has an impact on the maximum size file that can be
     stored in the IMFS. With smaller block size, the maximum file size is
@@ -460,9 +462,6 @@ DESCRIPTION:
     - when the block size is 512 bytes, the maximum file size is 1,082,195,456
       bytes.
 
-NOTES:
-    None.
-
 .. index:: CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
 
 .. _CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM:
diff --git a/c-user/config/general.rst b/c-user/config/general.rst
index 35225f9..e25b0c6 100644
--- a/c-user/config/general.rst
+++ b/c-user/config/general.rst
@@ -47,23 +47,30 @@ CONFIGURE_EXTRA_TASK_STACKS
 CONSTANT:
     ``CONFIGURE_EXTRA_TASK_STACKS``
 
-DATA TYPE:
-    Unsigned integer (``size_t``).
-
-RANGE:
-    Undefined or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be small enough so that the task stack space calculation carried
+      out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+      ``uintptr_t``.
+
 DESCRIPTION:
-    This configuration parameter is set to the number of bytes the applications
-    wishes to add to the task stack requirements calculated by
+    The value of this configuration option defines the number of bytes the
+    applications wishes to add to the task stack requirements calculated by
     ``<rtems/confdefs.h>``.
 
 NOTES:
     This parameter is very important.  If the application creates tasks with
-    stacks larger then the minimum, then that memory is NOT accounted for by
+    stacks larger then the minimum, then that memory is **not** accounted for by
     ``<rtems/confdefs.h>``.
 
 .. index:: CONFIGURE_INITIAL_EXTENSIONS
@@ -104,29 +111,36 @@ CONFIGURE_INTERRUPT_STACK_SIZE
 CONSTANT:
     ``CONFIGURE_INTERRUPT_STACK_SIZE``
 
-DATA TYPE:
-    Unsigned integer.
-
-RANGE:
-    Positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is ``BSP_INTERRUPT_STACK_SIZE`` in case it is defined,
+    The default value is :ref:`BSP_INTERRUPT_STACK_SIZE` in case it is defined,
     otherwise the default value is ``CPU_STACK_MINIMUM_SIZE``.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * The system does not ensure a minimum size.  The minimum size is
+      BSP-specific and application-specific.
+
+    * It must be small enough so that the interrupt stack requirements
+      calculation carried out by ``<rtems/confdefs.h>`` does not overflow an
+      integer of type ``size_t``.
+
 DESCRIPTION:
-    The ``CONFIGURE_INTERRUPT_STACK_SIZE`` configuration option defines the
-    size of an interrupt stack in bytes.
+    The value of this configuration option defines the size of an interrupt stack
+    in bytes.
 
 NOTES:
     The interrupt stack size must be aligned according to
     ``CPU_INTERRUPT_STACK_ALIGNMENT``.
 
     There is one interrupt stack available for each configured processor
-    (:ref:`CONFIGURE_MAXIMUM_PROCESSORS <CONFIGURE_MAXIMUM_PROCESSORS>`).  The
-    interrupt stack areas are statically allocated in a special linker section
-    (``.rtemsstack.interrupt``).  The placement of this linker section is
-    BSP-specific.
+    (:ref:`CONFIGURE_MAXIMUM_PROCESSORS`).  The interrupt stack areas are
+    statically allocated in a special linker section (``.rtemsstack.interrupt``).
+    The placement of this linker section is BSP-specific.
 
     Some BSPs use the interrupt stack as the initialization stack which is used
     to perform the sequential system initialization before the multithreading
@@ -137,8 +151,7 @@ NOTES:
     stack size may still result in undefined behaviour.
 
     In releases before RTEMS 5.1 the default value was
-    :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE
-    <CONFIGURE_MINIMUM_TASK_STACK_SIZE>` instead of ``CPU_STACK_MINIMUM_SIZE``.
+    :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE` instead of ``CPU_STACK_MINIMUM_SIZE``.
 
 .. index:: CONFIGURE_MAXIMUM_FILE_DESCRIPTORS
 .. index:: maximum file descriptors
@@ -151,24 +164,30 @@ CONFIGURE_MAXIMUM_FILE_DESCRIPTORS
 CONSTANT:
     ``CONFIGURE_MAXIMUM_FILE_DESCRIPTORS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    If ``CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER`` is defined, then the
-    default value is 3, otherwise the default value is 0.  Three file
-    descriptors allows RTEMS to support standard input, output, and error I/O
-    streams on ``/dev/console``.
+    The default value is 3.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to ``SIZE_MAX``.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
 
 DESCRIPTION:
-    This configuration parameter is set to the maximum number of file like
-    objects that can be concurrently open.
+    The value of this configuration option defines the maximum number of file
+    like objects that can be concurrently open.
 
 NOTES:
-    None.
+    The default value of three file descriptors allows RTEMS to support standard
+    input, output, and error I/O streams on ``/dev/console``.
 
 .. index:: CONFIGURE_MAXIMUM_PRIORITY
 .. index:: maximum priority
@@ -182,21 +201,18 @@ CONFIGURE_MAXIMUM_PRIORITY
 CONSTANT:
     ``CONFIGURE_MAXIMUM_PRIORITY``
 
-DATA TYPE:
-    Unsigned integer (``uint8_t``).
-
-RANGE:
-    Valid values for this configuration parameter must be one (1) less than
-    than a power of two (2) between 4 and 256 inclusively.  In other words,
-    valid values are 3, 7, 31, 63, 127, and 255.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is 255, because RTEMS must support 256 priority levels to
-    be compliant with various standards. These priorities range from zero (0)
-    to 255.
+    The default value is 255.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must be
+    an element of {3, 7, 31, 63, 127, 255}.
 
 DESCRIPTION:
-    For the schedulers
+    For the following schedulers
 
     * :ref:`SchedulerPriority`, which is the default in uniprocessor
       configurations and can be configured through the
@@ -217,8 +233,8 @@ NOTES:
     The numerically greatest priority is the logically lowest priority in the
     system and will thus be used by the IDLE task.
 
-    Priority zero (0) is reserved for internal use by RTEMS and is not available
-    to applications.
+    Priority zero is reserved for internal use by RTEMS and is not available to
+    applications.
 
     Reducing the number of priorities through this configuration option reduces
     the amount of memory allocated by the schedulers listed above.  These
@@ -228,6 +244,9 @@ NOTES:
     priority levels (default), 48 bytes for 4 priority levels
     (``CONFIGURE_MAXIMUM_PRIORITY == 3``).
 
+    The default value is 255, because RTEMS must support 256 priority levels to
+    be compliant with various standards.  These priorities range from 0 to 255.
+
 .. index:: CONFIGURE_MAXIMUM_PROCESSORS
 
 .. _CONFIGURE_MAXIMUM_PROCESSORS:
@@ -238,27 +257,27 @@ CONFIGURE_MAXIMUM_PROCESSORS
 CONSTANT:
     ``CONFIGURE_MAXIMUM_PROCESSORS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 1.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must be greater than or equal to 0
+    and less than or equal to ``CPU_MAXIMUM_PROCESSORS``.
+
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_PROCESSORS`` must be set to the maximum number of
+    The value of this configuration option defines the maximum number of
     processors an application intends to use.  The number of actually available
-    processors depends on the hardware and may be less.  It is recommended to
-    use the smallest value suitable for the application in order to save
-    memory.  Each processor needs an idle thread and interrupt stack for
-    example.
+    processors depends on the hardware and may be less.  It is recommended to use
+    the smallest value suitable for the application in order to save memory.
+    Each processor needs an idle thread and interrupt stack for example.
 
 NOTES:
     If there are more processors available than configured, the rest will be
-    ignored.  This configuration define is ignored in uniprocessor
-    configurations.
+    ignored.  In uniprocessor configuration, this configuration define is
+    ignored.
 
 .. index:: CONFIGURE_MAXIMUM_THREAD_NAME_SIZE
 .. index:: maximum thread name size
@@ -271,24 +290,35 @@ CONFIGURE_MAXIMUM_THREAD_NAME_SIZE
 CONSTANT:
     ``CONFIGURE_MAXIMUM_THREAD_NAME_SIZE``
 
-DATA TYPE:
-    Unsigned integer (``size_t``).
-
-RANGE:
-    No restrictions.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is 16.  This value was chosen for Linux compatibility,
-    see
-    `PTHREAD_SETNAME_NP(3) <http://man7.org/linux/man-pages/man3/pthread_setname_np.3.html>`_.
+    The default value is 16.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to ``SIZE_MAX``.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
 
 DESCRIPTION:
-    This configuration parameter specifies the maximum thread name size
-    including the terminating `NUL` character.
+    The value of this configuration option defines the maximum thread name size
+    including the terminating ``NUL`` character.
 
 NOTES:
+    The default value was chosen for Linux compatibility, see
+    `PTHREAD_SETNAME_NP(3) <http://man7.org/linux/man-pages/man3/pthread_setname_np.3.html>`_.
+
     The size of the thread control block is increased by the maximum thread name
-    size.  This configuration option is available since RTEMS 5.1.
+    size.
+
+    This configuration option is available since RTEMS 5.1.
 
 .. index:: CONFIGURE_MEMORY_OVERHEAD
 
@@ -300,24 +330,33 @@ CONFIGURE_MEMORY_OVERHEAD
 CONSTANT:
     ``CONFIGURE_MEMORY_OVERHEAD``
 
-DATA TYPE:
-    Unsigned integer (``size_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be small enough so that the RTEMS Workspace size calculation
+      carried out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+      ``uintptr_t``.
+
 DESCRIPTION:
-    This parameter is set to the number of kilobytes the application wishes to
-    add to the requirements calculated by ``<rtems/confdefs.h>``.
+    The value of this configuration option defines the number of kilobytes the
+    application wishes to add to the RTEMS Workspace size calculated by
+    ``<rtems/confdefs.h>``.
 
 NOTES:
-    This configuration parameter should only be used when it is suspected that
-    a bug in ``<rtems/confdefs.h>`` has resulted in an underestimation.
-    Typically the memory allocation will be too low when an application does
-    not account for all message queue buffers or task stacks.
+    This configuration option should only be used when it is suspected that a bug
+    in ``<rtems/confdefs.h>`` has resulted in an underestimation.  Typically the
+    memory allocation will be too low when an application does not account for
+    all message queue buffers or task stacks, see
+    :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
 
 .. index:: CONFIGURE_MESSAGE_BUFFER_MEMORY
 .. index:: configure message queue buffer memory
@@ -332,18 +371,25 @@ CONFIGURE_MESSAGE_BUFFER_MEMORY
 CONSTANT:
     ``CONFIGURE_MESSAGE_BUFFER_MEMORY``
 
-DATA TYPE:
-    integer summation macro
-
-RANGE:
-    undefined (zero) or calculation resulting in a positive integer
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is zero.
+    The default value is 0.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be small enough so that the RTEMS Workspace size calculation
+      carried out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+      ``uintptr_t``.
 
 DESCRIPTION:
-    The value of this configuration option defines the number of bytes
-    resereved for message queue buffers in the RTEMS Workspace.
+    The value of this configuration option defines the number of bytes reserved
+    for message queue buffers in the RTEMS Workspace.
 
 NOTES:
     The configuration options :ref:`CONFIGURE_MAXIMUM_MESSAGE_QUEUES` and
@@ -393,6 +439,7 @@ NOTES:
           )
 
 .. index:: CONFIGURE_MICROSECONDS_PER_TICK
+.. index:: clock tick quantum
 .. index:: tick quantum
 
 .. _CONFIGURE_MICROSECONDS_PER_TICK:
@@ -403,18 +450,25 @@ CONFIGURE_MICROSECONDS_PER_TICK
 CONSTANT:
     ``CONFIGURE_MICROSECONDS_PER_TICK``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    This is not defined by default. When not defined, the clock tick quantum is
-    configured to be 10,000 microseconds which is ten (10) milliseconds.
+    The default value is 10000.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to a Clock Driver specific value.
+
+    * It must be less than or equal to a Clock Driver specific value.
+
+    * The resulting clock ticks per second should be an integer.
 
 DESCRIPTION:
-    This constant is  used to specify the length of time between clock ticks.
+    The value of this configuration option defines the length of time in
+    microseconds between clock ticks (clock tick quantum).
 
     When the clock tick quantum value is too low, the system will spend so much
     time processing clock ticks that it does not have processing time available
@@ -432,11 +486,11 @@ DESCRIPTION:
     application.
 
 NOTES:
-    This configuration parameter has no impact if the Clock Tick Device driver
-    is not configured.
+    This configuration option has no impact if the Clock Driver is not
+    configured, see :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`.
 
-    There may be BSP specific limits on the resolution or maximum value of a
-    clock tick quantum.
+    There may be Clock Driver specific limits on the resolution or maximum value
+    of a clock tick quantum.
 
 .. index:: CONFIGURE_MINIMUM_TASK_STACK_SIZE
 .. index:: minimum task stack size
@@ -449,23 +503,31 @@ CONFIGURE_MINIMUM_TASK_STACK_SIZE
 CONSTANT:
     ``CONFIGURE_MINIMUM_TASK_STACK_SIZE``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is architecture-specific.
+    The default value is ``CPU_STACK_MINIMUM_SIZE``.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * The system does not ensure a minimum size.  The minimum size is
+      BSP-specific and application-specific.
+
+    * It must be small enough so that the task stack space calculation carried
+      out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+      ``uintptr_t``.
 
 DESCRIPTION:
-    This configuration parameter defines the minimum stack size in bytes for
-    every user task or thread in the system.
+    The value of this configuration option defines the minimum stack size in
+    bytes for every user task or thread in the system.
 
 NOTES:
     Adjusting this parameter should be done with caution.  Examining the actual
     stack usage using the stack checker usage reporting facility is recommended
-    (see also :ref:`CONFIGURE_STACK_CHECKER_ENABLED <CONFIGURE_STACK_CHECKER_ENABLED>`).
+    (see also :ref:`CONFIGURE_STACK_CHECKER_ENABLED`).
 
     This parameter can be used to lower the minimum from that recommended. This
     can be used in low memory systems to reduce memory consumption for
@@ -478,12 +540,11 @@ NOTES:
 
     By default, this configuration parameter defines also the minimum stack
     size of POSIX threads.  This can be changed with the
-    :ref:`CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE <CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE>`
+    :ref:`CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE`
     configuration option.
 
     In releases before RTEMS 5.1 the ``CONFIGURE_MINIMUM_TASK_STACK_SIZE`` was
-    used to define the default value of :ref:`CONFIGURE_INTERRUPT_STACK_SIZE
-    <CONFIGURE_INTERRUPT_STACK_SIZE>`.
+    used to define the default value of :ref:`CONFIGURE_INTERRUPT_STACK_SIZE`.
 
 .. index:: CONFIGURE_STACK_CHECKER_ENABLED
 
@@ -524,22 +585,23 @@ CONFIGURE_TICKS_PER_TIMESLICE
 CONSTANT:
     ``CONFIGURE_TICKS_PER_TIMESLICE``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 50.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must be greater than or equal to 0
+    and less than or equal to ``UINT32_MAX``.
+
 DESCRIPTION:
-    This configuration parameter specifies the length of the timeslice quantum
-    in ticks for each task.
+    The value of this configuration option defines the length of the timeslice
+    quantum in ticks for each task.
 
 NOTES:
-    This configuration parameter has no impact if the Clock Tick Device driver
-    is not configured.
+    This configuration option has no impact if the Clock Driver is not
+    configured, see :ref:`CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`.
 
 .. index:: CONFIGURE_UNIFIED_WORK_AREAS
 .. index:: unified work areas
@@ -587,27 +649,28 @@ CONFIGURE_UNLIMITED_ALLOCATION_SIZE
 CONSTANT:
     ``CONFIGURE_UNLIMITED_ALLOCATION_SIZE``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    If not defined and ``CONFIGURE_UNLIMITED_OBJECTS`` is defined, the default
-    value is eight (8).
+    The default value is 8.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must meet the constraints of all
+    object classes to which it is applied.
 
 DESCRIPTION:
-    ``CONFIGURE_UNLIMITED_ALLOCATION_SIZE`` provides an allocation size to use
-    for ``rtems_resource_unlimited`` when using
-    ``CONFIGURE_UNLIMITED_OBJECTS``.
+    If :ref:`CONFIGURE_UNLIMITED_OBJECTS` is defined, then the value of this
+    configuration option defines the default objects maximum of all object
+    classes supporting :ref:`ConfigUnlimitedObjects` to
+    ``rtems_resource_unlimited(CONFIGURE_UNLIMITED_ALLOCATION_SIZE)``.
 
 NOTES:
     By allowing users to declare all resources as being unlimited the user can
-    avoid identifying and limiting the resources
-    used. ``CONFIGURE_UNLIMITED_OBJECTS`` does not support varying the
-    allocation sizes for different objects; users who want that much control
-    can define the ``rtems_resource_unlimited`` macros themselves.
+    avoid identifying and limiting the resources used.
+
+    The object maximum of each class can be configured also individually using
+    the :c:func:`rtems_resource_unlimited` macro.
 
 .. index:: CONFIGURE_UNLIMITED_OBJECTS
 
diff --git a/c-user/config/idle-task.rst b/c-user/config/idle-task.rst
index 7af8b2f..06a049e 100644
--- a/c-user/config/idle-task.rst
+++ b/c-user/config/idle-task.rst
@@ -90,18 +90,26 @@ CONFIGURE_IDLE_TASK_STACK_SIZE
 CONSTANT:
     ``CONFIGURE_IDLE_TASK_STACK_SIZE``
 
-DATA TYPE:
-    Unsigned integer (``size_t``).
-
-RANGE:
-    Undefined or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is RTEMS_MINIMUM_STACK_SIZE.
+    The default value is ``RTEMS_MINIMUM_STACK_SIZE``.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be small enough so that the idle task stack area calculation
+      carried out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+      ``size_t``.
 
 DESCRIPTION:
-    ``CONFIGURE_IDLE_TASK_STACK_SIZE`` is set to the desired stack size for the
-    IDLE task.
+    The value of this configuration option defines the task stack size for an
+    idle task.
 
 NOTES:
-    None.
+    In SMP configurations, there is one idle task per configured processor, see
+    :ref:`CONFIGURE_MAXIMUM_PROCESSORS`.
diff --git a/c-user/config/mpci.rst b/c-user/config/mpci.rst
index a24bfd5..7981fbc 100644
--- a/c-user/config/mpci.rst
+++ b/c-user/config/mpci.rst
@@ -48,17 +48,18 @@ CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
 CONSTANT:
     ``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 32.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must be greater than or equal to 0
+    and less than or equal to ``UINT32_MAX``.
+
 DESCRIPTION:
-    ``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS`` is the maximum number of
+    The value of this configuration option defines the maximum number of
     concurrently active global objects in a multiprocessor system.
 
 NOTES:
@@ -75,18 +76,19 @@ CONFIGURE_MP_MAXIMUM_NODES
 CONSTANT:
     ``CONFIGURE_MP_MAXIMUM_NODES``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 2.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must be greater than or equal to 0
+    and less than or equal to ``UINT32_MAX``.
+
 DESCRIPTION:
-    ``CONFIGURE_MP_MAXIMUM_NODES`` is the maximum number of nodes in a
-    multiprocessor system.
+    The value of this configuration option defines the maximum number of nodes in
+    a multiprocessor system.
 
 NOTES:
     None.
@@ -101,18 +103,20 @@ CONFIGURE_MP_MAXIMUM_PROXIES
 CONSTANT:
     ``CONFIGURE_MP_MAXIMUM_PROXIES``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Undefined or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 32.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must be greater than or equal to 0
+    and less than or equal to ``UINT32_MAX``.
+
 DESCRIPTION:
-    ``CONFIGURE_MP_MAXIMUM_PROXIES`` is the maximum number of concurrently
-    active thread/task proxies on this node in a multiprocessor system.
+    The value of this configuration option defines the maximum number of
+    concurrently active thread/task proxies on this node in a multiprocessor
+    system.
 
 NOTES:
     Since a proxy is used to represent a remote task/thread which is blocking
@@ -158,19 +162,19 @@ CONFIGURE_MP_NODE_NUMBER
 CONSTANT:
     ``CONFIGURE_MP_NODE_NUMBER``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is ``NODE_NUMBER``, which is assumed to be set by the
-    compilation environment.
+    The default value is ``NODE_NUMBER``.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must be greater than or equal to 0
+    and less than or equal to ``UINT32_MAX``.
 
 DESCRIPTION:
-    ``CONFIGURE_MP_NODE_NUMBER`` is the node number of this node in a
-    multiprocessor system.
+    The value of this configuration option defines the node number of this node
+    in a multiprocessor system.
 
 NOTES:
     In the RTEMS Multiprocessing Test Suite, the node number is derived from
diff --git a/c-user/config/posix-api.rst b/c-user/config/posix-api.rst
index 13ac18d..be88cc8 100644
--- a/c-user/config/posix-api.rst
+++ b/c-user/config/posix-api.rst
@@ -20,21 +20,35 @@ CONFIGURE_MAXIMUM_POSIX_KEYS
 CONSTANT:
     ``CONFIGURE_MAXIMUM_POSIX_KEYS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to 65535.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
+    * The value may be defined through :c:func:`rtems_resource_unlimited` the
+      enable unlimited objects for this object class, if the value passed to
+      :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+      configuration option.
+
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_POSIX_KEYS`` is the maximum number of POSIX API Keys
-    that can be concurrently active.
+    The value of this configuration option defines the maximum number of POSIX
+    API Keys that can be concurrently active.
 
 NOTES:
-    This object class can be configured in unlimited allocation mode.
+    This object class can be configured in unlimited allocation mode, see
+    :ref:`ConfigUnlimitedObjects`.
 
 .. index:: CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
 
@@ -46,24 +60,38 @@ CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS
 CONSTANT:
     ``CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is
-    :ref:`CONFIGURE_MAXIMUM_POSIX_KEYS <CONFIGURE_MAXIMUM_POSIX_KEYS>` *
-    :ref:`CONFIGURE_MAXIMUM_TASKS <CONFIGURE_MAXIMUM_TASKS>` +
-    :ref:`CONFIGURE_MAXIMUM_POSIX_THREADS <CONFIGURE_MAXIMUM_POSIX_THREADS>`.
+    :ref:`CONFIGURE_MAXIMUM_POSIX_KEYS` *
+    :ref:`CONFIGURE_MAXIMUM_TASKS` +
+    :ref:`CONFIGURE_MAXIMUM_POSIX_THREADS`.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to 65535.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
+    * The value may be defined through :c:func:`rtems_resource_unlimited` the
+      enable unlimited objects for this object class, if the value passed to
+      :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+      configuration option.
 
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_POSIX_KEY_VALUE_PAIRS`` is the maximum number of key
+    The value of this configuration option defines the maximum number of key
     value pairs used by POSIX API Keys that can be concurrently active.
 
 NOTES:
-    This object class can be configured in unlimited allocation mode.
+    This object class can be configured in unlimited allocation mode, see
+    :ref:`ConfigUnlimitedObjects`.
 
     A key value pair is created by :c:func:`pthread_setspecific` if the value
     is not :c:macro:`NULL`, otherwise it is deleted.
@@ -78,23 +106,37 @@ CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES
 CONSTANT:
     ``CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to 65535.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
+    * The value may be defined through :c:func:`rtems_resource_unlimited` the
+      enable unlimited objects for this object class, if the value passed to
+      :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+      configuration option.
+
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES`` is the maximum number of POSIX
+    The value of this configuration option defines the maximum number of POSIX
     API Message Queues that can be concurrently active.
 
 NOTES:
-    This object class can be configured in unlimited allocation mode.  You have
-    to account for the memory used to store the messages of each message queue,
-    see :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
+    This object class can be configured in unlimited allocation mode, see
+    :ref:`ConfigUnlimitedObjects`.  You have to account for the memory used to
+    store the messages of each message queue, see
+    :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
 
 .. index:: CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
 
@@ -106,17 +148,25 @@ CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS
 CONSTANT:
     ``CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to ``SIZE_MAX``.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS`` is the maximum number of POSIX
+    The value of this configuration option defines the maximum number of POSIX
     API Queued Signals that can be concurrently active.
 
 NOTES:
@@ -135,25 +185,39 @@ CONFIGURE_MAXIMUM_POSIX_SEMAPHORES
 CONSTANT:
     ``CONFIGURE_MAXIMUM_POSIX_SEMAPHORES``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to 65535.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
+    * The value may be defined through :c:func:`rtems_resource_unlimited` the
+      enable unlimited objects for this object class, if the value passed to
+      :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+      configuration option.
+
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_POSIX_SEMAPHORES`` is the maximum number of POSIX API
-    Named Semaphores that can be concurrently active.
+    The value of this configuration option defines the maximum number of POSIX
+    API Named Semaphores that can be concurrently active.
 
 NOTES:
-    This object class can be configured in unlimited allocation mode.
+    This object class can be configured in unlimited allocation mode, see
+    :ref:`ConfigUnlimitedObjects`.
 
-    Named semaphores are created with ``sem_open()``.  Semaphores initialized
-    with ``sem_init()`` are not affected by this configuration option since the
-    storage space for these semaphores is user-provided.
+    Named semaphores are created with :c:func:`sem_open()`.  Semaphores
+    initialized with :c:func:`sem_init()` are not affected by this configuration
+    option since the storage space for these semaphores is user-provided.
 
 .. index:: CONFIGURE_MAXIMUM_POSIX_THREADS
 
@@ -165,32 +229,45 @@ CONFIGURE_MAXIMUM_POSIX_THREADS
 CONSTANT:
     ``CONFIGURE_MAXIMUM_POSIX_THREADS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to 65535.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
+    * It must be small enough so that the task stack space calculation carried
+      out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+      ``uintptr_t``.
+
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_POSIX_THREADS`` is the maximum number of POSIX API
-    Threads that can be concurrently active.
+    The value of this configuration option defines the maximum number of POSIX
+    API Threads that can be concurrently active.
 
 NOTES:
-    This object class can be configured in unlimited allocation mode.
+    This object class can be configured in unlimited allocation mode, see
+    :ref:`ConfigUnlimitedObjects`.
 
     This calculations for the required memory in the RTEMS Workspace for
     threads assume that each thread has a minimum stack size and has floating
-    point support enabled.  The configuration parameter
-    ``CONFIGURE_EXTRA_TASK_STACKS`` is used to specify thread stack
-    requirements *ABOVE* the minimum size required.  See :ref:`Reserve
+    point support enabled.  The configuration option
+    :ref:`CONFIGURE_EXTRA_TASK_STACKS` is used to specify thread stack
+    requirements **above** the minimum size required.  See :ref:`Reserve
     Task/Thread Stack Memory Above Minimum` for more information about
     ``CONFIGURE_EXTRA_TASK_STACKS``.
 
     The maximum number of Classic API Tasks is specified by
-    :ref:`CONFIGURE_MAXIMUM_TASKS <CONFIGURE_MAXIMUM_TASKS>`.
+    :ref:`CONFIGURE_MAXIMUM_TASKS`.
 
     All POSIX threads have floating point enabled.
 
@@ -204,21 +281,35 @@ CONFIGURE_MAXIMUM_POSIX_TIMERS
 CONSTANT:
     ``CONFIGURE_MAXIMUM_POSIX_TIMERS``
 
-DATA TYPE:
-    Unsigned integer (``uint32_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is 0.
 
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be less than or equal to 65535.
+
+    * It must be less than or equal to a BSP-specific value which depends on the
+      memory size of the platform available to the application.
+
+    * The value may be defined through :c:func:`rtems_resource_unlimited` the
+      enable unlimited objects for this object class, if the value passed to
+      :c:func:`rtems_resource_unlimited` satisfies all other constraints of this
+      configuration option.
+
 DESCRIPTION:
-    ``CONFIGURE_MAXIMUM_POSIX_TIMERS`` is the maximum number of POSIX API
-    Timers that can be concurrently active.
+    The value of this configuration option defines the maximum number of POSIX
+    API Timers that can be concurrently active.
 
 NOTES:
-    This object class can be configured in unlimited allocation mode.
+    This object class can be configured in unlimited allocation mode, see
+    :ref:`ConfigUnlimitedObjects`.
 
     Timers are only available if RTEMS was built with the
     ``--enable-posix`` build configuration option.
@@ -234,19 +325,26 @@ CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE
 CONSTANT:
     ``CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE``
 
-DATA TYPE:
-    Unsigned integer (``size_t``).
-
-RANGE:
-    Positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
     The default value is two times the value of
-    :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE <CONFIGURE_MINIMUM_TASK_STACK_SIZE>`.
+    :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to 0.
+
+    * It must be small enough so that the task stack space calculation carried
+      out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+      ``uintptr_t``.
 
 DESCRIPTION:
-    This configuration parameter defines the minimum stack size in bytes for
-    every POSIX thread in the system.
+    The value of this configuration option defines the minimum stack size in
+    bytes for every POSIX thread in the system.
 
 NOTES:
     None.
diff --git a/c-user/config/posix-init-thread.rst b/c-user/config/posix-init-thread.rst
index 82c0942..1f56ebc 100644
--- a/c-user/config/posix-init-thread.rst
+++ b/c-user/config/posix-init-thread.rst
@@ -46,25 +46,28 @@ CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE
 CONSTANT:
     ``CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE``
 
-DATA TYPE:
-    Unsigned integer (``size_t``).
-
-RANGE:
-    Zero or positive.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default value is 2 \* RTEMS_MINIMUM_STACK_SIZE.
+    The default value is :ref:`CONFIGURE_MINIMUM_POSIX_THREAD_STACK_SIZE`.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must satisfy all of the following
+    constraints:
+
+    * It must be greater than or equal to :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+
+    * It must be small enough so that the task stack space calculation carried
+      out by ``<rtems/confdefs.h>`` does not overflow an integer of type
+      ``uintptr_t``.
 
 DESCRIPTION:
-    ``CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE`` is the stack size of the single
-    initialization thread defined by the POSIX API Initialization Threads
-    Table.
+    The value of this configuration option defines the thread stack size of the
+    POSIX API initialization threads.
 
 NOTES:
-    If the stack size specified is greater than the configured minimum, it must
-    be accounted for in ``CONFIGURE_EXTRA_TASK_STACKS``.  See :ref:`Reserve
-    Task/Thread Stack Memory Above Minimum` for more information about
-    ``CONFIGURE_EXTRA_TASK_STACKS``.
+    None.
 
 .. index:: CONFIGURE_POSIX_INIT_THREAD_TABLE
 
diff --git a/c-user/config/scheduler-general.rst b/c-user/config/scheduler-general.rst
index bf32986..d26ea39 100644
--- a/c-user/config/scheduler-general.rst
+++ b/c-user/config/scheduler-general.rst
@@ -135,32 +135,44 @@ CONFIGURE_SCHEDULER_NAME
 CONSTANT:
     ``CONFIGURE_SCHEDULER_NAME``
 
-DATA TYPE:
-    RTEMS Name (``rtems_name``).
-
-RANGE:
-    Any value.
+OPTION TYPE:
+    This configuration option is an integer define.
 
 DEFAULT VALUE:
-    The default name is
+    The default value is
+
+    * ``"MEDF"`` for the :ref:`EDF SMP Scheduler <SchedulerSMPEDF>`,
+
+    * ``"MPA "`` for the :ref:`Arbitrary Processor Affinity Priority SMP Scheduler <SchedulerSMPPriorityAffinity>`,
+
+    * ``"MPD "`` for the :ref:`Deterministic Priority SMP Scheduler <SchedulerSMPPriority>`,
+
+    * ``"MPS "`` for the :ref:`Simple Priority SMP Scheduler <SchedulerSMPPrioritySimple>`,
 
-      - ``"MEDF"`` for the :ref:`EDF SMP Scheduler <SchedulerSMPEDF>`,
-      - ``"MPA "`` for the :ref:`Arbitrary Processor Affinity Priority SMP Scheduler <SchedulerSMPPriorityAffinity>`,
-      - ``"MPD "`` for the :ref:`Deterministic Priority SMP Scheduler <SchedulerSMPPriority>`,
-      - ``"MPS "`` for the :ref:`Simple Priority SMP Scheduler <SchedulerSMPPrioritySimple>`,
-      - ``"UCBS"`` for the :ref:`Uniprocessor CBS Scheduler <SchedulerCBS>`,
-      - ``"UEDF"`` for the :ref:`Uniprocessor EDF Scheduler <SchedulerEDF>`,
-      - ``"UPD "`` for the :ref:`Uniprocessor Deterministic Priority Scheduler <SchedulerPriority>`, and
-      - ``"UPS "`` for the :ref:`Uniprocessor Simple Priority Scheduler <SchedulerPrioritySimple>`.
+    * ``"UCBS"`` for the :ref:`Uniprocessor CBS Scheduler <SchedulerCBS>`,
+
+    * ``"UEDF"`` for the :ref:`Uniprocessor EDF Scheduler <SchedulerEDF>`,
+
+    * ``"UPD "`` for the :ref:`Uniprocessor Deterministic Priority Scheduler <SchedulerPriority>`, and
+
+    * ``"UPS "`` for the :ref:`Uniprocessor Simple Priority Scheduler <SchedulerPrioritySimple>`.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option must be a valid integer of type
+    ``rtems_name``.
 
 DESCRIPTION:
-    Schedulers can be identified via ``rtems_scheduler_ident``.  The name of
-    the scheduler is determined by the configuration.
+    The value of this configuration option defines the name of the default
+    scheduler.
 
 NOTES:
     This scheduler configuration option is an advanced configuration option.
     Think twice before you use it.
 
+    Schedulers can be identified via c:func:`rtems_scheduler_ident`.
+
+    Use :c:func:`rtems_build_name` to define the scheduler name.
+
 .. index:: CONFIGURE_SCHEDULER_PRIORITY
 
 .. _CONFIGURE_SCHEDULER_PRIORITY:
-- 
2.16.4



More information about the devel mailing list