[rtems-docs commit] c-user: Add application config info directives

Sebastian Huber sebh at rtems.org
Tue Oct 4 08:19:18 UTC 2022


Module:    rtems-docs
Branch:    master
Commit:    0fc5c0336d0cd07b3f6c298381fc97dbee9705b0
Changeset: http://git.rtems.org/rtems-docs/commit/?id=0fc5c0336d0cd07b3f6c298381fc97dbee9705b0

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri Sep  9 16:31:59 2022 +0200

c-user: Add application config info directives

Close #4267.
Close #4269.

---

 c-user/config/classic-api.rst       |   42 +-
 c-user/config/classic-init-task.rst |    8 +-
 c-user/config/device-driver.rst     |   10 +-
 c-user/config/directives.rst        | 1550 +++++++++++++++++++++++++++++++++++
 c-user/config/general.rst           |    4 +-
 c-user/config/index.rst             |    2 +
 c-user/config/intro.rst             |   43 -
 c-user/config/introduction.rst      |  227 +++++
 c-user/config/posix-api.rst         |   24 +-
 c-user/config/scheduler-general.rst |    6 +-
 c-user/glossary.rst                 |    8 +-
 c-user/semaphore/index.rst          |    2 +-
 c-user/task/index.rst               |    2 +-
 13 files changed, 1832 insertions(+), 96 deletions(-)

diff --git a/c-user/config/classic-api.rst b/c-user/config/classic-api.rst
index 4981918..b19a241 100644
--- a/c-user/config/classic-api.rst
+++ b/c-user/config/classic-api.rst
@@ -73,8 +73,8 @@ The following constraints apply to this configuration option:
   memory available to the application.
 
 * The value of the configuration option may be defined through
-  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
-  object class, if the value passed to :c:func:`rtems_resource_unlimited`
+  :ref:`InterfaceRtemsResourceUnlimited` the enable unlimited objects for the
+  object class, if the value passed to :ref:`InterfaceRtemsResourceUnlimited`
   satisfies all other constraints of the configuration option.
 
 .. Generated from spec:/acfg/if/max-message-queues
@@ -127,8 +127,8 @@ The following constraints apply to this configuration option:
   memory available to the application.
 
 * The value of the configuration option may be defined through
-  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
-  object class, if the value passed to :c:func:`rtems_resource_unlimited`
+  :ref:`InterfaceRtemsResourceUnlimited` the enable unlimited objects for the
+  object class, if the value passed to :ref:`InterfaceRtemsResourceUnlimited`
   satisfies all other constraints of the configuration option.
 
 .. Generated from spec:/acfg/if/max-partitions
@@ -179,8 +179,8 @@ The following constraints apply to this configuration option:
   memory available to the application.
 
 * The value of the configuration option may be defined through
-  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
-  object class, if the value passed to :c:func:`rtems_resource_unlimited`
+  :ref:`InterfaceRtemsResourceUnlimited` the enable unlimited objects for the
+  object class, if the value passed to :ref:`InterfaceRtemsResourceUnlimited`
   satisfies all other constraints of the configuration option.
 
 .. Generated from spec:/acfg/if/max-periods
@@ -231,8 +231,8 @@ The following constraints apply to this configuration option:
   memory available to the application.
 
 * The value of the configuration option may be defined through
-  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
-  object class, if the value passed to :c:func:`rtems_resource_unlimited`
+  :ref:`InterfaceRtemsResourceUnlimited` the enable unlimited objects for the
+  object class, if the value passed to :ref:`InterfaceRtemsResourceUnlimited`
   satisfies all other constraints of the configuration option.
 
 .. Generated from spec:/acfg/if/max-ports
@@ -283,8 +283,8 @@ The following constraints apply to this configuration option:
   memory available to the application.
 
 * The value of the configuration option may be defined through
-  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
-  object class, if the value passed to :c:func:`rtems_resource_unlimited`
+  :ref:`InterfaceRtemsResourceUnlimited` the enable unlimited objects for the
+  object class, if the value passed to :ref:`InterfaceRtemsResourceUnlimited`
   satisfies all other constraints of the configuration option.
 
 .. Generated from spec:/acfg/if/max-regions
@@ -335,8 +335,8 @@ The following constraints apply to this configuration option:
   memory available to the application.
 
 * The value of the configuration option may be defined through
-  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
-  object class, if the value passed to :c:func:`rtems_resource_unlimited`
+  :ref:`InterfaceRtemsResourceUnlimited` the enable unlimited objects for the
+  object class, if the value passed to :ref:`InterfaceRtemsResourceUnlimited`
   satisfies all other constraints of the configuration option.
 
 .. Generated from spec:/acfg/if/max-semaphores
@@ -391,8 +391,8 @@ The following constraints apply to this configuration option:
   memory available to the application.
 
 * The value of the configuration option may be defined through
-  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
-  object class, if the value passed to :c:func:`rtems_resource_unlimited`
+  :ref:`InterfaceRtemsResourceUnlimited` the enable unlimited objects for the
+  object class, if the value passed to :ref:`InterfaceRtemsResourceUnlimited`
   satisfies all other constraints of the configuration option.
 
 .. Generated from spec:/acfg/if/max-tasks
@@ -461,8 +461,8 @@ The following constraints apply to this configuration option:
   <https://en.cppreference.com/w/c/types/integer>`_.
 
 * The value of the configuration option may be defined through
-  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
-  object class, if the value passed to :c:func:`rtems_resource_unlimited`
+  :ref:`InterfaceRtemsResourceUnlimited` the enable unlimited objects for the
+  object class, if the value passed to :ref:`InterfaceRtemsResourceUnlimited`
   satisfies all other constraints of the configuration option.
 
 .. Generated from spec:/acfg/if/max-thread-local-storage-size
@@ -576,8 +576,8 @@ The following constraints apply to this configuration option:
   memory available to the application.
 
 * The value of the configuration option may be defined through
-  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
-  object class, if the value passed to :c:func:`rtems_resource_unlimited`
+  :ref:`InterfaceRtemsResourceUnlimited` the enable unlimited objects for the
+  object class, if the value passed to :ref:`InterfaceRtemsResourceUnlimited`
   satisfies all other constraints of the configuration option.
 
 .. Generated from spec:/acfg/if/max-user-extensions
@@ -654,15 +654,15 @@ The default value is 0.
 .. rubric:: DESCRIPTION:
 
 The value of this configuration option defines the minimum count of Classic
-API Tasks which are constructed by :c:func:`rtems_task_construct`.
+API Tasks which are constructed by :ref:`InterfaceRtemsTaskConstruct`.
 
 .. rubric:: NOTES:
 
 By default, the calculation for the required memory in the RTEMS Workspace
 for tasks assumes that all Classic API Tasks are created by
-:c:func:`rtems_task_create`.  This configuration option can be used to
+:ref:`InterfaceRtemsTaskCreate`.  This configuration option can be used to
 reduce the required memory for the system-provided task storage areas since
-tasks constructed by :c:func:`rtems_task_construct` use a user-provided
+tasks constructed by :ref:`InterfaceRtemsTaskConstruct` use a user-provided
 task storage area.
 
 .. rubric:: CONSTRAINTS:
diff --git a/c-user/config/classic-init-task.rst b/c-user/config/classic-init-task.rst
index 0cc400d..4974356 100644
--- a/c-user/config/classic-init-task.rst
+++ b/c-user/config/classic-init-task.rst
@@ -135,8 +135,8 @@ If this configuration option is specified, then
   ``<rtems/confdefs.h>`` for the Classic API initialization task,
 
 * the Classic API initialization task is constructed by
-  :c:func:`rtems_task_construct` instead of using
-  :c:func:`rtems_task_create`,
+  :ref:`InterfaceRtemsTaskConstruct` instead of using
+  :ref:`InterfaceRtemsTaskCreate`,
 
 * the maximum thread-local storage size defined by
   :ref:`CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE` is used for the Classic API
@@ -164,7 +164,7 @@ The following constraints apply to this configuration option:
   :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
 
 * The value of the configuration option shall be defined using
-  :c:func:`RTEMS_TASK_STORAGE_SIZE`.
+  :ref:`InterfaceRTEMSTASKSTORAGESIZE`.
 
 .. Generated from spec:/acfg/if/init-task-entrypoint
 
@@ -273,7 +273,7 @@ initialization task.
 
 .. rubric:: NOTES:
 
-Use :c:func:`rtems_build_name` to define the task name.
+Use :ref:`InterfaceRtemsBuildName` to define the task name.
 
 .. rubric:: CONSTRAINTS:
 
diff --git a/c-user/config/device-driver.rst b/c-user/config/device-driver.rst
index 87ed27a..971bb9e 100644
--- a/c-user/config/device-driver.rst
+++ b/c-user/config/device-driver.rst
@@ -237,7 +237,7 @@ The Console Driver is responsible for providing the :file:`/dev/console`
 device file.  This device is used to initialize the standard input, output,
 and error file descriptors.
 
-BSPs should be constructed in a manner that allows :c:func:`printk` to work
+BSPs should be constructed in a manner that allows :ref:`InterfacePrintk` to work
 properly without the need for the Console Driver to be configured.
 
 The
@@ -439,9 +439,9 @@ This device driver is responsible for providing the :file:`/dev/console`
 device file.  This device is used to initialize the standard input, output,
 and error file descriptors.
 
-This device driver reads via :c:func:`getchark`.
+This device driver reads via :ref:`InterfaceGetchark`.
 
-This device driver writes via :c:func:`rtems_putc`.
+This device driver writes via :ref:`InterfaceRtemsPutc`.
 
 The Termios framework is not used.  There is no support to change device
 settings, e.g. baud, stop bits, parity, etc.
@@ -493,14 +493,14 @@ This device driver is responsible for providing the :file:`/dev/console`
 device file.  This device is used to initialize the standard input, output,
 and error file descriptors.
 
-This device driver reads via :c:func:`getchark`.
+This device driver reads via :ref:`InterfaceGetchark`.
 
 This device driver writes into a write buffer.  The count of characters
 written into the write buffer is returned.  It might be less than the
 requested count, in case the write buffer is full.  The write is
 non-blocking and may be called from interrupt context.  A dedicated task
 reads from the write buffer and outputs the characters via
-:c:func:`rtems_putc`.  This task runs with the least important priority.
+:ref:`InterfaceRtemsPutc`.  This task runs with the least important priority.
 The write buffer size is 2047 characters and it is not configurable.
 
 Use ``fsync( STDOUT_FILENO )`` or ``fdatasync( STDOUT_FILENO )`` to drain the
diff --git a/c-user/config/directives.rst b/c-user/config/directives.rst
new file mode 100644
index 0000000..715d6e9
--- /dev/null
+++ b/c-user/config/directives.rst
@@ -0,0 +1,1550 @@
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. Copyright (C) 2009, 2021 embedded brains GmbH (http://www.embedded-brains.de)
+.. Copyright (C) 1988, 2021 On-Line Applications Research Corporation (OAR)
+
+.. This file is part of the RTEMS quality process and was automatically
+.. generated.  If you find something that needs to be fixed or
+.. worded better please post a report or patch to an RTEMS mailing list
+.. or raise a bug report:
+..
+.. https://www.rtems.org/bugs.html
+..
+.. For information on updating and regenerating please refer to the How-To
+.. section in the Software Requirements Engineering chapter of the
+.. RTEMS Software Engineering manual.  The manual is provided as a part of
+.. a release.  For development sources please refer to the online
+.. documentation at:
+..
+.. https://docs.rtems.org
+
+.. _ApplicationConfigurationInformationDirectives:
+
+Directives
+==========
+
+This section details the directives of the Application Configuration
+Information. A subsection is dedicated to each of this manager's directives and
+lists the calling sequence, parameters, description, return values, and notes
+of the directive.
+
+.. Generated from spec:/rtems/config/if/get-build-label
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_get_build_label()
+
+.. _InterfaceRtemsGetBuildLabel:
+
+rtems_get_build_label()
+-----------------------
+
+Gets the RTEMS build label.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    const char *rtems_get_build_label( void );
+
+.. rubric:: DESCRIPTION:
+
+The build label is a user-provided string defined by the build configuration
+through the ``RTEMS_BUILD_LABEL`` build option.  The format of the string is
+completely user-defined.
+
+.. rubric:: RETURN VALUES:
+
+Returns a pointer to the RTEMS build label.
+
+.. rubric:: NOTES:
+
+The build label can be used to distinguish test suite results obtained from
+different build configurations.  A use case is to record test results with
+performance data to track performance regressions.  For this a database of
+performance limits is required.  The build label and the target hash obtained
+from :ref:`InterfaceRtemsGetTargetHash` can be used as a key to obtain
+performance limits.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-copyright-notice
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_get_copyright_notice()
+
+.. _InterfaceRtemsGetCopyrightNotice:
+
+rtems_get_copyright_notice()
+----------------------------
+
+Gets the RTEMS copyright notice.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    const char *rtems_get_copyright_notice( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns a pointer to the RTEMS copyright notice.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-target-hash
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_get_target_hash()
+
+.. _InterfaceRtemsGetTargetHash:
+
+rtems_get_target_hash()
+-----------------------
+
+Gets the RTEMS target hash.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    const char *rtems_get_target_hash( void );
+
+.. rubric:: DESCRIPTION:
+
+The target hash is calculated from BSP-specific values which characterize a
+target system.  The target hash is encoded as a base64url string.  The target
+hash algorithm is unspecified.
+
+.. rubric:: RETURN VALUES:
+
+Returns a pointer to the RTEMS target hash.
+
+.. rubric:: NOTES:
+
+For example, the device tree, settings of the memory controller, processor and
+bus frequencies, a serial number of a chip may be used to calculate the target
+hash.
+
+The target hash can be used to distinguish test suite results obtained from
+different target systems.  See also :ref:`InterfaceRtemsGetBuildLabel`.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-version-string
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_get_version_string()
+
+.. _InterfaceRtemsGetVersionString:
+
+rtems_get_version_string()
+--------------------------
+
+Gets the RTEMS version string.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    const char *rtems_get_version_string( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns a pointer to the RTEMS version string.
+
+.. rubric:: NOTES:
+
+The version string has no particular format.  Parsing the string may break
+across RTEMS releases.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-do-zero-of-workspace
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_do_zero_of_workspace()
+
+.. _InterfaceRtemsConfigurationGetDoZeroOfWorkspace:
+
+rtems_configuration_get_do_zero_of_workspace()
+----------------------------------------------
+
+Indicates if the RTEMS Workspace is configured to be zeroed during system
+initialization for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    bool rtems_configuration_get_do_zero_of_workspace( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns true, if the RTEMS Workspace is configured to be zeroed during system
+initialization for this application, otherwise false.
+
+.. rubric:: NOTES:
+
+The setting is defined by the :ref:`CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY`
+application configuration option.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-idle-task-stack-size
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_idle_task_stack_size()
+
+.. _InterfaceRtemsConfigurationGetIdleTaskStackSize:
+
+rtems_configuration_get_idle_task_stack_size()
+----------------------------------------------
+
+Gets the IDLE task stack size in bytes of this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    size_t rtems_configuration_get_idle_task_stack_size( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the IDLE task stack size in bytes of this application.
+
+.. rubric:: NOTES:
+
+The IDLE task stack size is defined by the
+:ref:`CONFIGURE_IDLE_TASK_STACK_SIZE` application configuration option.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-idle-task
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_idle_task()
+
+.. _InterfaceRtemsConfigurationGetIdleTask:
+
+rtems_configuration_get_idle_task()
+-----------------------------------
+
+Gets the IDLE task body of this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    void *( * )( uintptr_t ) rtems_configuration_get_idle_task( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the IDLE task body of this application.
+
+.. rubric:: NOTES:
+
+The IDLE task body is defined by the :ref:`CONFIGURE_IDLE_TASK_BODY`
+application configuration option.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-interrupt-stack-size
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_interrupt_stack_size()
+
+.. _InterfaceRtemsConfigurationGetInterruptStackSize:
+
+rtems_configuration_get_interrupt_stack_size()
+----------------------------------------------
+
+Gets the interrupt stack size in bytes of this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    size_t rtems_configuration_get_interrupt_stack_size( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the interrupt stack size in bytes of this application.
+
+.. rubric:: NOTES:
+
+The interrupt stack size is defined by the
+:ref:`CONFIGURE_INTERRUPT_STACK_SIZE` application configuration option.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-maximum-barriers
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_maximum_barriers()
+
+.. _InterfaceRtemsConfigurationGetMaximumBarriers:
+
+rtems_configuration_get_maximum_barriers()
+------------------------------------------
+
+Gets the resource number of :ref:`RTEMSAPIClassicBarrier` objects configured
+for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_configuration_get_maximum_barriers( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the resource number of :ref:`RTEMSAPIClassicBarrier` objects configured
+for this application.
+
+.. rubric:: NOTES:
+
+The resource number is defined by the :ref:`CONFIGURE_MAXIMUM_BARRIERS`
+application configuration option.  See also
+:ref:`InterfaceRtemsResourceIsUnlimited` and
+:ref:`InterfaceRtemsResourceMaximumPerAllocation`.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-maximum-extensions
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_maximum_extensions()
+
+.. _InterfaceRtemsConfigurationGetMaximumExtensions:
+
+rtems_configuration_get_maximum_extensions()
+--------------------------------------------
+
+Gets the resource number of :ref:`RTEMSAPIClassicUserExt` objects configured
+for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_configuration_get_maximum_extensions( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the resource number of :ref:`RTEMSAPIClassicUserExt` objects configured
+for this application.
+
+.. rubric:: NOTES:
+
+The resource number is defined by the :ref:`CONFIGURE_MAXIMUM_USER_EXTENSIONS`
+application configuration option.  See also
+:ref:`InterfaceRtemsResourceIsUnlimited` and
+:ref:`InterfaceRtemsResourceMaximumPerAllocation`.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-maximum-message-queues
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_maximum_message_queues()
+
+.. _InterfaceRtemsConfigurationGetMaximumMessageQueues:
+
+rtems_configuration_get_maximum_message_queues()
+------------------------------------------------
+
+Gets the resource number of :ref:`RTEMSAPIClassicMessage` objects configured
+for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_configuration_get_maximum_message_queues( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the resource number of :ref:`RTEMSAPIClassicMessage` objects configured
+for this application.
+
+.. rubric:: NOTES:
+
+The resource number is defined by the :ref:`CONFIGURE_MAXIMUM_MESSAGE_QUEUES`
+application configuration option.  See also
+:ref:`InterfaceRtemsResourceIsUnlimited` and
+:ref:`InterfaceRtemsResourceMaximumPerAllocation`.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-maximum-partitions
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_maximum_partitions()
+
+.. _InterfaceRtemsConfigurationGetMaximumPartitions:
+
+rtems_configuration_get_maximum_partitions()
+--------------------------------------------
+
+Gets the resource number of :ref:`RTEMSAPIClassicPart` objects configured for
+this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_configuration_get_maximum_partitions( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the resource number of :ref:`RTEMSAPIClassicPart` objects configured
+for this application.
+
+.. rubric:: NOTES:
+
+The resource number is defined by the :ref:`CONFIGURE_MAXIMUM_PARTITIONS`
+application configuration option.  See also
+:ref:`InterfaceRtemsResourceIsUnlimited` and
+:ref:`InterfaceRtemsResourceMaximumPerAllocation`.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-maximum-periods
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_maximum_periods()
+
+.. _InterfaceRtemsConfigurationGetMaximumPeriods:
+
+rtems_configuration_get_maximum_periods()
+-----------------------------------------
+
+Gets the resource number of :ref:`RTEMSAPIClassicRatemon` objects configured
+for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_configuration_get_maximum_periods( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the resource number of :ref:`RTEMSAPIClassicRatemon` objects configured
+for this application.
+
+.. rubric:: NOTES:
+
+The resource number is defined by the :ref:`CONFIGURE_MAXIMUM_PERIODS`
+application configuration option.  See also
+:ref:`InterfaceRtemsResourceIsUnlimited` and
+:ref:`InterfaceRtemsResourceMaximumPerAllocation`.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-maximum-ports
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_maximum_ports()
+
+.. _InterfaceRtemsConfigurationGetMaximumPorts:
+
+rtems_configuration_get_maximum_ports()
+---------------------------------------
+
+Gets the resource number of :ref:`RTEMSAPIClassicDPMem` objects configured for
+this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_configuration_get_maximum_ports( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the resource number of :ref:`RTEMSAPIClassicDPMem` objects configured
+for this application.
+
+.. rubric:: NOTES:
+
+The resource number is defined by the :ref:`CONFIGURE_MAXIMUM_PORTS`
+application configuration option.  See also
+:ref:`InterfaceRtemsResourceIsUnlimited` and
+:ref:`InterfaceRtemsResourceMaximumPerAllocation`.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-maximum-processors
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_maximum_processors()
+
+.. _InterfaceRtemsConfigurationGetMaximumProcessors:
+
+rtems_configuration_get_maximum_processors()
+--------------------------------------------
+
+Gets the maximum number of processors configured for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_configuration_get_maximum_processors( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the maximum number of processors configured for this application.
+
+.. rubric:: NOTES:
+
+The actual number of processors available to the application is returned by
+:ref:`InterfaceRtemsSchedulerGetProcessorMaximum` which less than or equal to
+the configured maximum number of processors
+(:ref:`CONFIGURE_MAXIMUM_PROCESSORS`).
+
+In uniprocessor configurations, this macro is a compile time constant which
+evaluates to one.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-maximum-regions
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_maximum_regions()
+
+.. _InterfaceRtemsConfigurationGetMaximumRegions:
+
+rtems_configuration_get_maximum_regions()
+-----------------------------------------
+
+Gets the resource number of :ref:`RTEMSAPIClassicRegion` objects configured for
+this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_configuration_get_maximum_regions( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the resource number of :ref:`RTEMSAPIClassicRegion` objects configured
+for this application.
+
+.. rubric:: NOTES:
+
+The resource number is defined by the :ref:`CONFIGURE_MAXIMUM_REGIONS`
+application configuration option.  See also
+:ref:`InterfaceRtemsResourceIsUnlimited` and
+:ref:`InterfaceRtemsResourceMaximumPerAllocation`.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-maximum-semaphores
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_maximum_semaphores()
+
+.. _InterfaceRtemsConfigurationGetMaximumSemaphores:
+
+rtems_configuration_get_maximum_semaphores()
+--------------------------------------------
+
+Gets the resource number of :ref:`RTEMSAPIClassicSem` objects configured for
+this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_configuration_get_maximum_semaphores( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the resource number of :ref:`RTEMSAPIClassicSem` objects configured for
+this application.
+
+.. rubric:: NOTES:
+
+The resource number is defined by the :ref:`CONFIGURE_MAXIMUM_SEMAPHORES`
+application configuration option.  See also
+:ref:`InterfaceRtemsResourceIsUnlimited` and
+:ref:`InterfaceRtemsResourceMaximumPerAllocation`.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-maximum-tasks
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_maximum_tasks()
+
+.. _InterfaceRtemsConfigurationGetMaximumTasks:
+
+rtems_configuration_get_maximum_tasks()
+---------------------------------------
+
+Gets the resource number of :ref:`RTEMSAPIClassicTasks` objects configured for
+this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_configuration_get_maximum_tasks( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the resource number of :ref:`RTEMSAPIClassicTasks` objects configured
+for this application.
+
+.. rubric:: NOTES:
+
+The resource number is defined by the :ref:`CONFIGURE_MAXIMUM_TASKS`
+application configuration option.  See also
+:ref:`InterfaceRtemsResourceIsUnlimited` and
+:ref:`InterfaceRtemsResourceMaximumPerAllocation`.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-maximum-timers
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_maximum_timers()
+
+.. _InterfaceRtemsConfigurationGetMaximumTimers:
+
+rtems_configuration_get_maximum_timers()
+----------------------------------------
+
+Gets the resource number of :ref:`RTEMSAPIClassicTimer` objects configured for
+this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_configuration_get_maximum_timers( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the resource number of :ref:`RTEMSAPIClassicTimer` objects configured
+for this application.
+
+.. rubric:: NOTES:
+
+The resource number is defined by the :ref:`CONFIGURE_MAXIMUM_TIMERS`
+application configuration option.  See also
+:ref:`InterfaceRtemsResourceIsUnlimited` and
+:ref:`InterfaceRtemsResourceMaximumPerAllocation`.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-microseconds-per-tick
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_microseconds_per_tick()
+
+.. _InterfaceRtemsConfigurationGetMicrosecondsPerTick:
+
+rtems_configuration_get_microseconds_per_tick()
+-----------------------------------------------
+
+Gets the number of microseconds per clock tick configured for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_configuration_get_microseconds_per_tick( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the number of microseconds per clock tick configured for this
+application.
+
+.. rubric:: NOTES:
+
+The number of microseconds per :term:`clock tick` is defined by the
+:ref:`CONFIGURE_MICROSECONDS_PER_TICK` application configuration option.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-milliseconds-per-tick
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_milliseconds_per_tick()
+
+.. _InterfaceRtemsConfigurationGetMillisecondsPerTick:
+
+rtems_configuration_get_milliseconds_per_tick()
+-----------------------------------------------
+
+Gets the number of milliseconds per clock tick configured for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_configuration_get_milliseconds_per_tick( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the number of milliseconds per clock tick configured for this
+application.
+
+.. rubric:: NOTES:
+
+The number of milliseconds per :term:`clock tick` is defined by the
+:ref:`CONFIGURE_MICROSECONDS_PER_TICK` application configuration option.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-nanoseconds-per-tick
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_nanoseconds_per_tick()
+
+.. _InterfaceRtemsConfigurationGetNanosecondsPerTick:
+
+rtems_configuration_get_nanoseconds_per_tick()
+----------------------------------------------
+
+Gets the number of microseconds per clock tick configured for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_configuration_get_nanoseconds_per_tick( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the number of microseconds per clock tick configured for this
+application.
+
+.. rubric:: NOTES:
+
+The number of nanoseconds per :term:`clock tick` is defined by the
+:ref:`CONFIGURE_MICROSECONDS_PER_TICK` application configuration option.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-number-of-initial-extensions
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_number_of_initial_extensions()
+
+.. _InterfaceRtemsConfigurationGetNumberOfInitialExtensions:
+
+rtems_configuration_get_number_of_initial_extensions()
+------------------------------------------------------
+
+Gets the number of initial extensions configured for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_configuration_get_number_of_initial_extensions( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the number of initial extensions configured for this application.
+
+.. rubric:: NOTES:
+
+The number of initial extensions is defined by the
+:ref:`CONFIGURE_INITIAL_EXTENSIONS` application configuration option and
+related options.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-stack-allocate-for-idle-hook
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_stack_allocate_for_idle_hook()
+
+.. _InterfaceRtemsConfigurationGetStackAllocateForIdleHook:
+
+rtems_configuration_get_stack_allocate_for_idle_hook()
+------------------------------------------------------
+
+Gets the task stack allocator allocate hook used to allocate the stack of each
+:term:`IDLE task` configured for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    void *( * )( uint32_t, size_t * )
+    rtems_configuration_get_stack_allocate_for_idle_hook( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the task stack allocator allocate hook used to allocate the stack of
+each :term:`IDLE task` configured for this application.
+
+.. rubric:: NOTES:
+
+The task stack allocator allocate hook for idle tasks is defined by the
+:ref:`CONFIGURE_TASK_STACK_ALLOCATOR_FOR_IDLE` application configuration
+option.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-stack-allocate-hook
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_stack_allocate_hook()
+
+.. _InterfaceRtemsConfigurationGetStackAllocateHook:
+
+rtems_configuration_get_stack_allocate_hook()
+---------------------------------------------
+
+Gets the task stack allocator allocate hook configured for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    void *( * )( size_t ) rtems_configuration_get_stack_allocate_hook( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the task stack allocator allocate hook configured for this application.
+
+.. rubric:: NOTES:
+
+The task stack allocator allocate hook is defined by the
+:ref:`CONFIGURE_TASK_STACK_ALLOCATOR` application configuration option.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-stack-allocate-init-hook
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_stack_allocate_init_hook()
+
+.. _InterfaceRtemsConfigurationGetStackAllocateInitHook:
+
+rtems_configuration_get_stack_allocate_init_hook()
+--------------------------------------------------
+
+Gets the task stack allocator initialization hook configured for this
+application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    void ( * )( size_t ) rtems_configuration_get_stack_allocate_init_hook( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the task stack allocator initialization hook configured for this
+application.
+
+.. rubric:: NOTES:
+
+The task stack allocator initialization hook is defined by the
+:ref:`CONFIGURE_TASK_STACK_ALLOCATOR_INIT` application configuration option.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-stack-allocator-avoids-work-space
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_stack_allocator_avoids_work_space()
+
+.. _InterfaceRtemsConfigurationGetStackAllocatorAvoidsWorkSpace:
+
+rtems_configuration_get_stack_allocator_avoids_work_space()
+-----------------------------------------------------------
+
+Indicates if the task stack allocator is configured to avoid the RTEMS
+Workspace for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    bool rtems_configuration_get_stack_allocator_avoids_work_space( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns true, if the task stack allocator is configured to avoid the RTEMS
+Workspace for this application, otherwise false.
+
+.. rubric:: NOTES:
+
+The setting is defined by the
+:ref:`CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE` application
+configuration option.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-stack-free-hook
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_stack_free_hook()
+
+.. _InterfaceRtemsConfigurationGetStackFreeHook:
+
+rtems_configuration_get_stack_free_hook()
+-----------------------------------------
+
+Gets the task stack allocator free hook configured for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    void ( * )( void * ) rtems_configuration_get_stack_free_hook( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the task stack allocator free hook configured for this application.
+
+.. rubric:: NOTES:
+
+The task stack allocator free hook is defined by the
+:ref:`CONFIGURE_TASK_STACK_DEALLOCATOR` application configuration option.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-stack-space-size
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_stack_space_size()
+
+.. _InterfaceRtemsConfigurationGetStackSpaceSize:
+
+rtems_configuration_get_stack_space_size()
+------------------------------------------
+
+Gets the configured size in bytes of the memory space used to allocate thread
+stacks for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uintptr_t rtems_configuration_get_stack_space_size( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the configured size in bytes of the memory space used to allocate
+thread stacks for this application.
+
+.. rubric:: NOTES:
+
+The size takes only threads and tasks into account with are known at the
+application configuration time.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-ticks-per-timeslice
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_ticks_per_timeslice()
+
+.. _InterfaceRtemsConfigurationGetTicksPerTimeslice:
+
+rtems_configuration_get_ticks_per_timeslice()
+---------------------------------------------
+
+Gets the clock ticks per timeslice configured for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_configuration_get_ticks_per_timeslice( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the clock ticks per timeslice configured for this application.
+
+.. rubric:: NOTES:
+
+The :term:`clock ticks <clock tick>` per timeslice is defined by the
+:ref:`CONFIGURE_TICKS_PER_TIMESLICE` application configuration option.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-unified-work-area
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_unified_work_area()
+
+.. _InterfaceRtemsConfigurationGetUnifiedWorkArea:
+
+rtems_configuration_get_unified_work_area()
+-------------------------------------------
+
+Indicates if the RTEMS Workspace and C Program Heap are configured to be
+unified for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    bool rtems_configuration_get_unified_work_area( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns true, if the RTEMS Workspace and C Program Heap are configured to be
+unified for this application, otherwise false.
+
+.. rubric:: NOTES:
+
+The setting is defined by the :ref:`CONFIGURE_UNIFIED_WORK_AREAS` application
+configuration option.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-user-extension-table
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_user_extension_table()
+
+.. _InterfaceRtemsConfigurationGetUserExtensionTable:
+
+rtems_configuration_get_user_extension_table()
+----------------------------------------------
+
+Gets the initial extensions table configured for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    const rtems_extensions_table *rtems_configuration_get_user_extension_table(
+      void
+    );
+
+.. rubric:: RETURN VALUES:
+
+Returns a pointer to the initial extensions table configured for this
+application.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-user-multiprocessing-table
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_user_multiprocessing_table()
+
+.. _InterfaceRtemsConfigurationGetUserMultiprocessingTable:
+
+rtems_configuration_get_user_multiprocessing_table()
+----------------------------------------------------
+
+Gets the MPCI configuration table configured for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    const MPCI_Configuration *rtems_configuration_get_user_multiprocessing_table(
+      void
+    );
+
+.. rubric:: RETURN VALUES:
+
+Returns a pointer to the MPCI configuration table configured for this
+application.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-work-space-size
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_work_space_size()
+
+.. _InterfaceRtemsConfigurationGetWorkSpaceSize:
+
+rtems_configuration_get_work_space_size()
+-----------------------------------------
+
+Gets the RTEMS Workspace size in bytes configured for this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uintptr_t rtems_configuration_get_work_space_size( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns the RTEMS Workspace size in bytes configured for this application.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/get-api-configuration
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_configuration_get_rtems_api_configuration()
+
+.. _InterfaceRtemsConfigurationGetRtemsApiConfiguration:
+
+rtems_configuration_get_rtems_api_configuration()
+-------------------------------------------------
+
+Gets the Classic API Configuration Table of this application.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    const rtems_api_configuration_table *
+    rtems_configuration_get_rtems_api_configuration( void );
+
+.. rubric:: RETURN VALUES:
+
+Returns a pointer to the Classic API Configuration Table of this application.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive may be called from within any runtime context.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/resource-is-unlimited
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_resource_is_unlimited()
+
+.. _InterfaceRtemsResourceIsUnlimited:
+
+rtems_resource_is_unlimited()
+-----------------------------
+
+Indicates if the resource is unlimited.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    bool rtems_resource_is_unlimited( uint32_t resource );
+
+.. rubric:: PARAMETERS:
+
+``resource``
+    This parameter is the resource number.
+
+.. rubric:: RETURN VALUES:
+
+Returns true, if the resource is unlimited, otherwise false.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive is implemented by a macro and may be called from within C/C++
+  constant expressions.  In addition, a function implementation of the
+  directive exists for bindings to other programming languages.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/resource-maximum-per-allocation
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_resource_maximum_per_allocation()
+
+.. _InterfaceRtemsResourceMaximumPerAllocation:
+
+rtems_resource_maximum_per_allocation()
+---------------------------------------
+
+Gets the maximum number per allocation of a resource number.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_resource_maximum_per_allocation( uint32_t resource );
+
+.. rubric:: PARAMETERS:
+
+``resource``
+    This parameter is the resource number.
+
+.. rubric:: RETURN VALUES:
+
+Returns the maximum number per allocation of a resource number.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive is implemented by a macro and may be called from within C/C++
+  constant expressions.  In addition, a function implementation of the
+  directive exists for bindings to other programming languages.
+
+* The directive will not cause the calling task to be preempted.
+
+.. Generated from spec:/rtems/config/if/resource-unlimited
+
+.. raw:: latex
+
+    \clearpage
+
+.. index:: rtems_resource_unlimited()
+
+.. _InterfaceRtemsResourceUnlimited:
+
+rtems_resource_unlimited()
+--------------------------
+
+Augments the resource number so that it indicates an unlimited resource.
+
+.. rubric:: CALLING SEQUENCE:
+
+.. code-block:: c
+
+    uint32_t rtems_resource_unlimited( uint32_t resource );
+
+.. rubric:: PARAMETERS:
+
+``resource``
+    This parameter is the resource number to augment.
+
+.. rubric:: RETURN VALUES:
+
+Returns the resource number augmented to indicate an unlimited resource.
+
+.. rubric:: NOTES:
+
+This directive should be used to configure unlimited objects, see
+:ref:`ConfigUnlimitedObjects`.
+
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this directive:
+
+* The directive is implemented by a macro and may be called from within C/C++
+  constant expressions.  In addition, a function implementation of the
+  directive exists for bindings to other programming languages.
+
+* The directive will not cause the calling task to be preempted.
diff --git a/c-user/config/general.rst b/c-user/config/general.rst
index c80d162..674eeb7 100644
--- a/c-user/config/general.rst
+++ b/c-user/config/general.rst
@@ -1008,7 +1008,7 @@ By allowing users to declare all resources as being unlimited the user can
 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.
+the :ref:`InterfaceRtemsResourceUnlimited` macro.
 
 .. rubric:: CONSTRAINTS:
 
@@ -1091,7 +1091,7 @@ is verbose.
 .. rubric:: NOTES:
 
 You may use this feature to debug system initialization issues.  The
-:c:func:`printk` function is used to print the information.
+:ref:`InterfacePrintk` function is used to print the information.
 
 .. Generated from spec:/acfg/if/zero-workspace-automatically
 
diff --git a/c-user/config/index.rst b/c-user/config/index.rst
index fd877b5..498387e 100644
--- a/c-user/config/index.rst
+++ b/c-user/config/index.rst
@@ -10,6 +10,7 @@ Configuring a System
 
 .. toctree::
 
+    introduction
     intro
     general
     device-driver
@@ -29,4 +30,5 @@ Configuring a System
     mpci
     libpci
     ada
+    directives
     obsolete
diff --git a/c-user/config/intro.rst b/c-user/config/intro.rst
index 4c2f715..04ec996 100644
--- a/c-user/config/intro.rst
+++ b/c-user/config/intro.rst
@@ -3,49 +3,6 @@
 .. Copyright (C) 2012 Gedare Bloom
 .. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
 
-Introduction
-============
-
-RTEMS must be configured for an application.  This configuration encompasses a
-variety of information including the length of each clock tick, the maximum
-number of each information RTEMS object that can be created, the application
-initialization tasks, the task scheduling algorithm to be used, and the device
-drivers in the application.
-
-Although this information is contained in data structures that are used by
-RTEMS at system initialization time, the data structures themselves must not be
-generated by hand. RTEMS provides a set of macros system which provides a
-simple standard mechanism to automate the generation of these structures.
-
-.. index:: confdefs.h
-.. index:: <rtems/confdefs.h>
-
-The RTEMS header file ``<rtems/confdefs.h>`` is at the core of the automatic
-generation of system configuration. It is based on the idea of setting macros
-which define configuration parameters of interest to the application and
-defaulting or calculating all others. This variety of macros can automatically
-produce all of the configuration data required for an RTEMS application.
-
-.. sidebar: Trivia:
-
-  The term ``confdefs`` is shorthand for a *Configuration Defaults*.
-
-As a general rule, application developers only specify values for the
-configuration parameters of interest to them. They define what resources or
-features they require. In most cases, when a parameter is not specified, it
-defaults to zero (0) instances, a standards compliant value, or disabled as
-appropriate. For example, by default there will be 256 task priority levels but
-this can be lowered by the application. This number of priority levels is
-required to be compliant with the RTEID/ORKID standards upon which the Classic
-API is based. There are similar cases where the default is selected to be
-compliant with the POSIX standard.
-
-For each configuration parameter in the configuration tables, the macro
-corresponding to that field is discussed. The RTEMS Maintainers expect that all
-systems can be easily configured using the ``<rtems/confdefs.h>`` mechanism and
-that using this mechanism will avoid internal RTEMS configuration changes
-impacting applications.
-
 Default Value Selection Philosophy
 ==================================
 
diff --git a/c-user/config/introduction.rst b/c-user/config/introduction.rst
new file mode 100644
index 0000000..b9aebf9
--- /dev/null
+++ b/c-user/config/introduction.rst
@@ -0,0 +1,227 @@
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. Copyright (C) 2009, 2021 embedded brains GmbH (http://www.embedded-brains.de)
+.. Copyright (C) 1988, 2021 On-Line Applications Research Corporation (OAR)
+
+.. This file is part of the RTEMS quality process and was automatically
+.. generated.  If you find something that needs to be fixed or
+.. worded better please post a report or patch to an RTEMS mailing list
+.. or raise a bug report:
+..
+.. https://www.rtems.org/bugs.html
+..
+.. For information on updating and regenerating please refer to the How-To
+.. section in the Software Requirements Engineering chapter of the
+.. RTEMS Software Engineering manual.  The manual is provided as a part of
+.. a release.  For development sources please refer to the online
+.. documentation at:
+..
+.. https://docs.rtems.org
+
+.. Generated from spec:/rtems/config/if/group
+
+.. _ApplicationConfigurationInformationIntroduction:
+
+Introduction
+============
+
+.. The following list was generated from:
+.. spec:/rtems/config/if/get-build-label
+.. spec:/rtems/config/if/get-copyright-notice
+.. spec:/rtems/config/if/get-target-hash
+.. spec:/rtems/config/if/get-version-string
+.. spec:/rtems/config/if/get-do-zero-of-workspace
+.. spec:/rtems/config/if/get-idle-task-stack-size
+.. spec:/rtems/config/if/get-idle-task
+.. spec:/rtems/config/if/get-interrupt-stack-size
+.. spec:/rtems/config/if/get-maximum-barriers
+.. spec:/rtems/config/if/get-maximum-extensions
+.. spec:/rtems/config/if/get-maximum-message-queues
+.. spec:/rtems/config/if/get-maximum-partitions
+.. spec:/rtems/config/if/get-maximum-periods
+.. spec:/rtems/config/if/get-maximum-ports
+.. spec:/rtems/config/if/get-maximum-processors
+.. spec:/rtems/config/if/get-maximum-regions
+.. spec:/rtems/config/if/get-maximum-semaphores
+.. spec:/rtems/config/if/get-maximum-tasks
+.. spec:/rtems/config/if/get-maximum-timers
+.. spec:/rtems/config/if/get-microseconds-per-tick
+.. spec:/rtems/config/if/get-milliseconds-per-tick
+.. spec:/rtems/config/if/get-nanoseconds-per-tick
+.. spec:/rtems/config/if/get-number-of-initial-extensions
+.. spec:/rtems/config/if/get-stack-allocate-for-idle-hook
+.. spec:/rtems/config/if/get-stack-allocate-hook
+.. spec:/rtems/config/if/get-stack-allocate-init-hook
+.. spec:/rtems/config/if/get-stack-allocator-avoids-work-space
+.. spec:/rtems/config/if/get-stack-free-hook
+.. spec:/rtems/config/if/get-stack-space-size
+.. spec:/rtems/config/if/get-ticks-per-timeslice
+.. spec:/rtems/config/if/get-unified-work-area
+.. spec:/rtems/config/if/get-user-extension-table
+.. spec:/rtems/config/if/get-user-multiprocessing-table
+.. spec:/rtems/config/if/get-work-space-size
+.. spec:/rtems/config/if/get-api-configuration
+.. spec:/rtems/config/if/resource-is-unlimited
+.. spec:/rtems/config/if/resource-maximum-per-allocation
+.. spec:/rtems/config/if/resource-unlimited
+
+The application configuration information group provides an API to get the
+configuration of an application.
+
+RTEMS must be configured for an application.  This configuration encompasses a
+variety of information including the length of each clock tick, the maximum
+number of each information RTEMS object that can be created, the application
+initialization tasks, the task scheduling algorithm to be used, and the device
+drivers in the application.
+
+Although this information is contained in data structures that are used by
+RTEMS at system initialization time, the data structures themselves must not be
+generated by hand. RTEMS provides a set of macros system which provides a
+simple standard mechanism to automate the generation of these structures.
+
+The RTEMS header file ``<rtems/confdefs.h>`` is at the core of the automatic
+generation of system configuration. It is based on the idea of setting macros
+which define configuration parameters of interest to the application and
+defaulting or calculating all others. This variety of macros can automatically
+produce all of the configuration data required for an RTEMS application.  The
+term ``confdefs`` is shorthand for a *Configuration Defaults*.
+
+As a general rule, application developers only specify values for the
+configuration parameters of interest to them. They define what resources or
+features they require. In most cases, when a parameter is not specified, it
+defaults to zero (0) instances, a standards compliant value, or disabled as
+appropriate. For example, by default there will be 256 task priority levels but
+this can be lowered by the application. This number of priority levels is
+required to be compliant with the RTEID/ORKID standards upon which the Classic
+API is based. There are similar cases where the default is selected to be
+compliant with the POSIX standard.
+
+For each configuration parameter in the configuration tables, the macro
+corresponding to that field is discussed. The RTEMS Maintainers expect that all
+systems can be easily configured using the ``<rtems/confdefs.h>`` mechanism and
+that using this mechanism will avoid internal RTEMS configuration changes
+impacting applications.
+
+Some application configuration settings and other system parameters can be
+queried by the application. The directives provided by the Application
+Configuration Information are:
+
+* :ref:`InterfaceRtemsGetBuildLabel` - Gets the RTEMS build label.
+
+* :ref:`InterfaceRtemsGetCopyrightNotice` - Gets the RTEMS copyright notice.
+
+* :ref:`InterfaceRtemsGetTargetHash` - Gets the RTEMS target hash.
+
+* :ref:`InterfaceRtemsGetVersionString` - Gets the RTEMS version string.
+
+* :ref:`InterfaceRtemsConfigurationGetDoZeroOfWorkspace` - Indicates if the
+  RTEMS Workspace is configured to be zeroed during system initialization for
+  this application.
+
+* :ref:`InterfaceRtemsConfigurationGetIdleTaskStackSize` - Gets the IDLE task
+  stack size in bytes of this application.
+
+* :ref:`InterfaceRtemsConfigurationGetIdleTask` - Gets the IDLE task body of
+  this application.
+
+* :ref:`InterfaceRtemsConfigurationGetInterruptStackSize` - Gets the interrupt
+  stack size in bytes of this application.
+
+* :ref:`InterfaceRtemsConfigurationGetMaximumBarriers` - Gets the resource
+  number of :ref:`RTEMSAPIClassicBarrier` objects configured for this
+  application.
+
+* :ref:`InterfaceRtemsConfigurationGetMaximumExtensions` - Gets the resource
+  number of :ref:`RTEMSAPIClassicUserExt` objects configured for this
+  application.
+
+* :ref:`InterfaceRtemsConfigurationGetMaximumMessageQueues` - Gets the resource
+  number of :ref:`RTEMSAPIClassicMessage` objects configured for this
+  application.
+
+* :ref:`InterfaceRtemsConfigurationGetMaximumPartitions` - Gets the resource
+  number of :ref:`RTEMSAPIClassicPart` objects configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetMaximumPeriods` - Gets the resource
+  number of :ref:`RTEMSAPIClassicRatemon` objects configured for this
+  application.
+
+* :ref:`InterfaceRtemsConfigurationGetMaximumPorts` - Gets the resource number
+  of :ref:`RTEMSAPIClassicDPMem` objects configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetMaximumProcessors` - Gets the maximum
+  number of processors configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetMaximumRegions` - Gets the resource
+  number of :ref:`RTEMSAPIClassicRegion` objects configured for this
+  application.
+
+* :ref:`InterfaceRtemsConfigurationGetMaximumSemaphores` - Gets the resource
+  number of :ref:`RTEMSAPIClassicSem` objects configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetMaximumTasks` - Gets the resource number
+  of :ref:`RTEMSAPIClassicTasks` objects configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetMaximumTimers` - Gets the resource number
+  of :ref:`RTEMSAPIClassicTimer` objects configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetMicrosecondsPerTick` - Gets the number of
+  microseconds per clock tick configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetMillisecondsPerTick` - Gets the number of
+  milliseconds per clock tick configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetNanosecondsPerTick` - Gets the number of
+  microseconds per clock tick configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetNumberOfInitialExtensions` - Gets the
+  number of initial extensions configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetStackAllocateForIdleHook` - Gets the task
+  stack allocator allocate hook used to allocate the stack of each :term:`IDLE
+  task` configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetStackAllocateHook` - Gets the task stack
+  allocator allocate hook configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetStackAllocateInitHook` - Gets the task
+  stack allocator initialization hook configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetStackAllocatorAvoidsWorkSpace` -
+  Indicates if the task stack allocator is configured to avoid the RTEMS
+  Workspace for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetStackFreeHook` - Gets the task stack
+  allocator free hook configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetStackSpaceSize` - Gets the configured
+  size in bytes of the memory space used to allocate thread stacks for this
+  application.
+
+* :ref:`InterfaceRtemsConfigurationGetTicksPerTimeslice` - Gets the clock ticks
+  per timeslice configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetUnifiedWorkArea` - Indicates if the RTEMS
+  Workspace and C Program Heap are configured to be unified for this
+  application.
+
+* :ref:`InterfaceRtemsConfigurationGetUserExtensionTable` - Gets the initial
+  extensions table configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetUserMultiprocessingTable` - Gets the MPCI
+  configuration table configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetWorkSpaceSize` - Gets the RTEMS Workspace
+  size in bytes configured for this application.
+
+* :ref:`InterfaceRtemsConfigurationGetRtemsApiConfiguration` - Gets the Classic
+  API Configuration Table of this application.
+
+* :ref:`InterfaceRtemsResourceIsUnlimited` - Indicates if the resource is
+  unlimited.
+
+* :ref:`InterfaceRtemsResourceMaximumPerAllocation` - Gets the maximum number
+  per allocation of a resource number.
+
+* :ref:`InterfaceRtemsResourceUnlimited` - Augments the resource number so that
+  it indicates an unlimited resource.
diff --git a/c-user/config/posix-api.rst b/c-user/config/posix-api.rst
index f72124c..71033c1 100644
--- a/c-user/config/posix-api.rst
+++ b/c-user/config/posix-api.rst
@@ -76,8 +76,8 @@ The following constraints apply to this configuration option:
   memory available to the application.
 
 * The value of the configuration option may be defined through
-  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
-  object class, if the value passed to :c:func:`rtems_resource_unlimited`
+  :ref:`InterfaceRtemsResourceUnlimited` the enable unlimited objects for the
+  object class, if the value passed to :ref:`InterfaceRtemsResourceUnlimited`
   satisfies all other constraints of the configuration option.
 
 .. Generated from spec:/acfg/if/max-posix-key-value-pairs
@@ -134,8 +134,8 @@ The following constraints apply to this configuration option:
   memory available to the application.
 
 * The value of the configuration option may be defined through
-  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
-  object class, if the value passed to :c:func:`rtems_resource_unlimited`
+  :ref:`InterfaceRtemsResourceUnlimited` the enable unlimited objects for the
+  object class, if the value passed to :ref:`InterfaceRtemsResourceUnlimited`
   satisfies all other constraints of the configuration option.
 
 .. Generated from spec:/acfg/if/max-posix-message-queues
@@ -193,8 +193,8 @@ The following constraints apply to this configuration option:
   <https://en.cppreference.com/w/c/types/integer>`_.
 
 * The value of the configuration option may be defined through
-  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
-  object class, if the value passed to :c:func:`rtems_resource_unlimited`
+  :ref:`InterfaceRtemsResourceUnlimited` the enable unlimited objects for the
+  object class, if the value passed to :ref:`InterfaceRtemsResourceUnlimited`
   satisfies all other constraints of the configuration option.
 
 .. Generated from spec:/acfg/if/max-posix-queued-signals
@@ -312,8 +312,8 @@ The following constraints apply to this configuration option:
   <https://en.cppreference.com/w/c/types/integer>`_.
 
 * The value of the configuration option may be defined through
-  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
-  object class, if the value passed to :c:func:`rtems_resource_unlimited`
+  :ref:`InterfaceRtemsResourceUnlimited` the enable unlimited objects for the
+  object class, if the value passed to :ref:`InterfaceRtemsResourceUnlimited`
   satisfies all other constraints of the configuration option.
 
 .. Generated from spec:/acfg/if/max-posix-shms
@@ -369,8 +369,8 @@ The following constraints apply to this configuration option:
   <https://en.cppreference.com/w/c/types/integer>`_.
 
 * The value of the configuration option may be defined through
-  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
-  object class, if the value passed to :c:func:`rtems_resource_unlimited`
+  :ref:`InterfaceRtemsResourceUnlimited` the enable unlimited objects for the
+  object class, if the value passed to :ref:`InterfaceRtemsResourceUnlimited`
   satisfies all other constraints of the configuration option.
 
 .. Generated from spec:/acfg/if/max-posix-threads
@@ -486,8 +486,8 @@ The following constraints apply to this configuration option:
   memory available to the application.
 
 * The value of the configuration option may be defined through
-  :c:func:`rtems_resource_unlimited` the enable unlimited objects for the
-  object class, if the value passed to :c:func:`rtems_resource_unlimited`
+  :ref:`InterfaceRtemsResourceUnlimited` the enable unlimited objects for the
+  object class, if the value passed to :ref:`InterfaceRtemsResourceUnlimited`
   satisfies all other constraints of the configuration option.
 
 * The value of the configuration option shall be zero if the POSIX API is not
diff --git a/c-user/config/scheduler-general.rst b/c-user/config/scheduler-general.rst
index 7169a83..a1ffa2b 100644
--- a/c-user/config/scheduler-general.rst
+++ b/c-user/config/scheduler-general.rst
@@ -407,9 +407,9 @@ scheduler.
 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`.
+Schedulers can be identified via :ref:`InterfaceRtemsSchedulerIdent`.
 
-Use :c:func:`rtems_build_name` to define the scheduler name.
+Use :ref:`InterfaceRtemsBuildName` to define the scheduler name.
 
 .. rubric:: CONSTRAINTS:
 
@@ -749,7 +749,7 @@ The following constraints apply to this configuration option:
 
   The ``obj_name`` macro parameter shall be the scheduler object name.  It is
   recommended to define the scheduler object name through
-  :c:func:`rtems_build_name`.
+  :ref:`InterfaceRtemsBuildName`.
 
 * Where the system was build with SMP support enabled, the table shall have one
   or more entries, otherwise it shall have exactly one entry.
diff --git a/c-user/glossary.rst b/c-user/glossary.rst
index dbe2e60..5ee7d6c 100644
--- a/c-user/glossary.rst
+++ b/c-user/glossary.rst
@@ -256,7 +256,7 @@ Glossary
     dynamic extension sets
         The dynamic extension sets are a list of :term:`user extensions`.  The list
         is defined by the system services used by the application and directive calls
-        such as :c:func:`rtems_extension_create`.  See also
+        such as :ref:`InterfaceRtemsExtensionCreate`.  See also
         :term:`initial extension sets`.
 
     EARS
@@ -425,7 +425,7 @@ Glossary
         The home scheduler of a :term:`task` is a :term:`scheduler` which is an
         :term:`eligible scheduler` and which is assigned to the task during its
         initialization or explicitly via a directive call such as
-        :c:func:`rtems_task_set_scheduler`.
+        :ref:`InterfaceRtemsTaskSetScheduler`.
 
     homogeneous
         A multiprocessor computer system composed of a single type of processor.
@@ -776,8 +776,8 @@ Glossary
         Each :term:`task` has exactly one real priority.  The real priority is
         always with respect to the :term:`home scheduler` of a task.  It is defined
         during task initialization.  It may be changed by directives such as
-        :c:func:`rtems_task_set_priority` and
-        :c:func:`rtems_task_set_scheduler`.  The real priority is the foundation
+        :ref:`InterfaceRtemsTaskSetPriority` and
+        :ref:`InterfaceRtemsTaskSetScheduler`.  The real priority is the foundation
         of the :term:`current priority`.
 
     real-time
diff --git a/c-user/semaphore/index.rst b/c-user/semaphore/index.rst
index c281104..a2dad4f 100644
--- a/c-user/semaphore/index.rst
+++ b/c-user/semaphore/index.rst
@@ -7,7 +7,7 @@
 .. index:: counting semaphores
 .. index:: mutual exclusion
 
-.. _RTEMSAPIClassicSemaphore:
+.. _RTEMSAPIClassicSem:
 
 Semaphore Manager
 *****************
diff --git a/c-user/task/index.rst b/c-user/task/index.rst
index afe8b76..7b22edf 100644
--- a/c-user/task/index.rst
+++ b/c-user/task/index.rst
@@ -4,7 +4,7 @@
 
 .. index:: tasks
 
-.. _RTEMSAPIClassicTask:
+.. _RTEMSAPIClassicTasks:
 
 Task Manager
 ************



More information about the vc mailing list