summaryrefslogtreecommitdiffstats
path: root/c-user/config/classic-api.rst
diff options
context:
space:
mode:
Diffstat (limited to 'c-user/config/classic-api.rst')
-rw-r--r--c-user/config/classic-api.rst317
1 files changed, 233 insertions, 84 deletions
diff --git a/c-user/config/classic-api.rst b/c-user/config/classic-api.rst
index 3647d05..bd2fa00 100644
--- a/c-user/config/classic-api.rst
+++ b/c-user/config/classic-api.rst
@@ -1,5 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
+.. Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
Classic API Configuration
@@ -17,21 +18,36 @@ 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 shall satisfy all of the following
+ constraints:
+
+ * It shall be greater than or equal to 0.
+
+ * It shall be less than or equal to 65535.
+
+ * It shall be less than or equal to a
+ BSP-specific and application-specific value which depends on the size of the
+ memory available to the application.
+
+ * It 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 +59,38 @@ 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 shall satisfy all of the following
+ constraints:
+
+ * It shall be greater than or equal to 0.
+
+ * It shall be less than or equal to 65535.
+
+ * It shall be less than or equal to a
+ BSP-specific and application-specific value which depends on the size of the
+ memory available to the application.
+
+ * It 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 +102,36 @@ 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 shall satisfy all of the following
+ constraints:
+
+ * It shall be greater than or equal to 0.
+
+ * It shall be less than or equal to 65535.
+
+ * It shall be less than or equal to a
+ BSP-specific and application-specific value which depends on the size of the
+ memory available to the application.
+
+ * It 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 +143,36 @@ 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 shall satisfy all of the following
+ constraints:
+
+ * It shall be greater than or equal to 0.
+
+ * It shall be less than or equal to 65535.
+
+ * It shall be less than or equal to a
+ BSP-specific and application-specific value which depends on the size of the
+ memory available to the application.
+
+ * It 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 +184,36 @@ 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 shall satisfy all of the following
+ constraints:
+
+ * It shall be greater than or equal to 0.
+
+ * It shall be less than or equal to 65535.
+
+ * It shall be less than or equal to a
+ BSP-specific and application-specific value which depends on the size of the
+ memory available to the application.
+
+ * It 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 +225,36 @@ 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 shall satisfy all of the following
+ constraints:
+
+ * It shall be greater than or equal to 0.
+
+ * It shall be less than or equal to 65535.
+
+ * It shall be less than or equal to a
+ BSP-specific and application-specific value which depends on the size of the
+ memory available to the application.
+
+ * It 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 +266,36 @@ 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 shall satisfy all of the following
+ constraints:
+
+ * It shall be greater than or equal to 0.
+
+ * It shall be less than or equal to 65535.
+
+ * It shall be less than or equal to a
+ BSP-specific and application-specific value which depends on the size of the
+ memory available to the application.
+
+ * It 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 +311,40 @@ 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 shall satisfy all of the following
+ constraints:
+
+ * It shall be greater than or equal to 0.
+
+ * It shall be less than or equal to 65535.
+
+ * It shall be less than or equal to a
+ BSP-specific and application-specific value which depends on the size of the
+ memory available to the application.
+
+ * It shall 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``.
+
+ * It 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 +355,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 +372,36 @@ 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 shall satisfy all of the following
+ constraints:
+
+ * It shall be greater than or equal to 0.
+
+ * It shall be less than or equal to 65535.
+
+ * It shall be less than or equal to a
+ BSP-specific and application-specific value which depends on the size of the
+ memory available to the application.
+
+ * It 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 +413,27 @@ 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 shall satisfy all of the following
+ constraints:
+
+ * It shall be greater than or equal to 0.
+
+ * It shall be less than or equal to 65535.
+
+ * It shall be less than or equal to a
+ BSP-specific and application-specific value which depends on the size of the
+ memory 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.