[PATCH] c-user: Document all configuration options

Sebastian Huber sebastian.huber at embedded-brains.de
Tue Mar 31 14:47:29 UTC 2020


Close #2806.
---
 c-user/config/device-driver.rst     |  81 ++++++++++++
 c-user/config/filesystem.rst        | 242 ++++++++++++++++++++++++++++++++++++
 c-user/config/general.rst           |  95 ++++++++++++++
 c-user/config/mpci.rst              |  37 ++++++
 c-user/config/posix-api.rst         |  45 +++++++
 c-user/config/scheduler-general.rst | 108 ++++++++++++++++
 c-user/config/task-stack-alloc.rst  |  58 +++++++++
 7 files changed, 666 insertions(+)

diff --git a/c-user/config/device-driver.rst b/c-user/config/device-driver.rst
index 0a18b2d..627c346 100644
--- a/c-user/config/device-driver.rst
+++ b/c-user/config/device-driver.rst
@@ -76,6 +76,33 @@ NOTES:
     See :ref:`CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS` for an alternative
     placement of application device driver initializers.
 
+.. index:: CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
+
+.. _CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER:
+
+CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER
+--------------------------------------
+
+CONSTANT:
+    ``CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER``
+
+OPTION TYPE:
+    This configuration option is a boolean feature define.
+
+DEFAULT CONFIGURATION:
+    If this configuration option is undefined, then the described feature is not
+    enabled.
+
+DESCRIPTION:
+    In case this configuration option is defined, then the ATA Driver is
+    initialized during system initialization.
+
+NOTES:
+    Most BSPs do not include support for an ATA Driver.
+
+    If this option is defined and the BSP does not have this device driver, then
+    the user will get a link time error for an undefined symbol.
+
 .. index:: CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
 
 .. _CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER:
@@ -178,6 +205,33 @@ NOTES:
     If this option is defined and the BSP does not have this device driver, then
     the user will get a link time error for an undefined symbol.
 
+.. index:: CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER
+
+.. _CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER:
+
+CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER
+--------------------------------------
+
+CONSTANT:
+    ``CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER``
+
+OPTION TYPE:
+    This configuration option is a boolean feature define.
+
+DEFAULT CONFIGURATION:
+    If this configuration option is undefined, then the described feature is not
+    enabled.
+
+DESCRIPTION:
+    In case this configuration option is defined, then the IDE Driver is
+    initialized during system initialization.
+
+NOTES:
+    Most BSPs do not include support for an IDE Driver.
+
+    If this option is defined and the BSP does not have this device driver, then
+    the user will get a link time error for an undefined symbol.
+
 .. index:: CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
 .. index:: /dev/null
 
@@ -471,6 +525,33 @@ NOTES:
     See :ref:`CONFIGURE_APPLICATION_EXTRA_DRIVERS` for an alternative placement
     of application device driver initializers.
 
+.. index:: CONFIGURE_ATA_DRIVER_TASK_PRIORITY
+
+.. _CONFIGURE_ATA_DRIVER_TASK_PRIORITY:
+
+CONFIGURE_ATA_DRIVER_TASK_PRIORITY
+----------------------------------
+
+CONSTANT:
+    ``CONFIGURE_ATA_DRIVER_TASK_PRIORITY``
+
+OPTION TYPE:
+    This configuration option is an integer define.
+
+DEFAULT VALUE:
+    The default value is 140.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option shall be a valid Classic API task
+    priority.  The set of valid task priorities is scheduler-specific.
+
+DESCRIPTION:
+    The value of this configuration option defines the ATA task priority.
+
+NOTES:
+    This configuration option is only evaluated if the configuration option
+    :ref:`CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER` is defined.
+
 .. index:: CONFIGURE_MAXIMUM_DRIVERS
 
 .. _CONFIGURE_MAXIMUM_DRIVERS:
diff --git a/c-user/config/filesystem.rst b/c-user/config/filesystem.rst
index b4bccc9..ef37307 100644
--- a/c-user/config/filesystem.rst
+++ b/c-user/config/filesystem.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)
 
 Filesystem Configuration
@@ -74,6 +75,223 @@ NOTES:
     drivers and basic input/output functions such as :c:func:`printf`.
     Filesystems can be disabled to reduce the memory footprint of an application.
 
+.. index:: CONFIGURE_FILESYSTEM_ALL
+
+.. _CONFIGURE_FILESYSTEM_ALL:
+
+CONFIGURE_FILESYSTEM_ALL
+------------------------
+
+CONSTANT:
+    ``CONFIGURE_FILESYSTEM_ALL``
+
+OPTION TYPE:
+    This configuration option is a boolean feature define.
+
+DEFAULT CONFIGURATION:
+    If this configuration option is undefined, then the described feature is not
+    enabled.
+
+DESCRIPTION:
+    In case this configuration option is defined, then the following
+    configuration options will be defined as well
+
+    - :ref:`CONFIGURE_FILESYSTEM_DOSFS`,
+
+    - :ref:`CONFIGURE_FILESYSTEM_FTPFS`,
+
+    - :ref:`CONFIGURE_FILESYSTEM_IMFS`,
+
+    - :ref:`CONFIGURE_FILESYSTEM_JFFS2`,
+
+    - :ref:`CONFIGURE_FILESYSTEM_NFS`,
+
+    - :ref:`CONFIGURE_FILESYSTEM_RFS`, and
+
+    - :ref:`CONFIGURE_FILESYSTEM_TFTPFS`.
+
+NOTES:
+    None.
+
+.. index:: CONFIGURE_FILESYSTEM_DOSFS
+
+.. _CONFIGURE_FILESYSTEM_DOSFS:
+
+CONFIGURE_FILESYSTEM_DOSFS
+--------------------------
+
+CONSTANT:
+    ``CONFIGURE_FILESYSTEM_DOSFS``
+
+OPTION TYPE:
+    This configuration option is a boolean feature define.
+
+DEFAULT CONFIGURATION:
+    If this configuration option is undefined, then the described feature is not
+    enabled.
+
+DESCRIPTION:
+    In case this configuration option is defined, then the DOS (FAT) filesystem
+    is registered, so that instances of this filesystem can be mounted by the
+    application.
+
+NOTES:
+    This filesystem requires a Block Device Cache configuration, see
+    :ref:`CONFIGURE_APPLICATION_NEEDS_LIBBLOCK`.
+
+.. index:: CONFIGURE_FILESYSTEM_FTPFS
+
+.. _CONFIGURE_FILESYSTEM_FTPFS:
+
+CONFIGURE_FILESYSTEM_FTPFS
+--------------------------
+
+CONSTANT:
+    ``CONFIGURE_FILESYSTEM_FTPFS``
+
+OPTION TYPE:
+    This configuration option is a boolean feature define.
+
+DEFAULT CONFIGURATION:
+    If this configuration option is undefined, then the described feature is not
+    enabled.
+
+DESCRIPTION:
+    In case this configuration option is defined, then the FTP filesystem (FTP
+    client) is registered, so that instances of this filesystem
+    can be mounted by the application.
+
+NOTES:
+    None.
+
+.. index:: CONFIGURE_FILESYSTEM_IMFS
+
+.. _CONFIGURE_FILESYSTEM_IMFS:
+
+CONFIGURE_FILESYSTEM_IMFS
+-------------------------
+
+CONSTANT:
+    ``CONFIGURE_FILESYSTEM_IMFS``
+
+OPTION TYPE:
+    This configuration option is a boolean feature define.
+
+DEFAULT CONFIGURATION:
+    If this configuration option is undefined, then the described feature is not
+    enabled.
+
+DESCRIPTION:
+    In case this configuration option is defined, then the In-Memory Filesystem
+    (IMFS) is registered, so that instances of this filesystem can be mounted by
+    the application.
+
+NOTES:
+    Applications will rarely need this configuration option.  This configuration
+    option is intended for test programs.  You do not need to define this
+    configuration option for the base filesystem (also known as root filesystem).
+
+.. index:: CONFIGURE_FILESYSTEM_JFFS2
+
+.. _CONFIGURE_FILESYSTEM_JFFS2:
+
+CONFIGURE_FILESYSTEM_JFFS2
+--------------------------
+
+CONSTANT:
+    ``CONFIGURE_FILESYSTEM_JFFS2``
+
+OPTION TYPE:
+    This configuration option is a boolean feature define.
+
+DEFAULT CONFIGURATION:
+    If this configuration option is undefined, then the described feature is not
+    enabled.
+
+DESCRIPTION:
+    In case this configuration option is defined, then the JFFS2 filesystem
+    is registered, so that instances of this filesystem can be mounted by the
+    application.
+
+NOTES:
+    None.
+
+.. index:: CONFIGURE_FILESYSTEM_NFS
+
+.. _CONFIGURE_FILESYSTEM_NFS:
+
+CONFIGURE_FILESYSTEM_NFS
+------------------------
+
+CONSTANT:
+    ``CONFIGURE_FILESYSTEM_NFS``
+
+OPTION TYPE:
+    This configuration option is a boolean feature define.
+
+DEFAULT CONFIGURATION:
+    If this configuration option is undefined, then the described feature is not
+    enabled.
+
+DESCRIPTION:
+    In case this configuration option is defined, then the Network Filesystem
+    (NFS) client is registered, so that instances of this filesystem can be
+    mounted by the application.
+
+NOTES:
+    None.
+
+.. index:: CONFIGURE_FILESYSTEM_RFS
+
+.. _CONFIGURE_FILESYSTEM_RFS:
+
+CONFIGURE_FILESYSTEM_RFS
+------------------------
+
+CONSTANT:
+    ``CONFIGURE_FILESYSTEM_RFS``
+
+OPTION TYPE:
+    This configuration option is a boolean feature define.
+
+DEFAULT CONFIGURATION:
+    If this configuration option is undefined, then the described feature is not
+    enabled.
+
+DESCRIPTION:
+    In case this configuration option is defined, then the RTEMS Filesystem (RFS)
+    is registered, so that instances of this filesystem can be mounted by the
+    application.
+
+NOTES:
+    This filesystem requires a Block Device Cache configuration, see
+    :ref:`CONFIGURE_APPLICATION_NEEDS_LIBBLOCK`.
+
+.. index:: CONFIGURE_FILESYSTEM_TFTPFS
+
+.. _CONFIGURE_FILESYSTEM_TFTPFS:
+
+CONFIGURE_FILESYSTEM_TFTPFS
+---------------------------
+
+CONSTANT:
+    ``CONFIGURE_FILESYSTEM_TFTPFS``
+
+OPTION TYPE:
+    This configuration option is a boolean feature define.
+
+DEFAULT CONFIGURATION:
+    If this configuration option is undefined, then the described feature is not
+    enabled.
+
+DESCRIPTION:
+    In case this configuration option is defined, then the TFTP filesystem (TFTP
+    client) is registered, so that instances of this filesystem can be mounted by
+    the application.
+
+NOTES:
+    None.
+
 .. index:: CONFIGURE_IMFS_DISABLE_CHMOD
 
 .. _CONFIGURE_IMFS_DISABLE_CHMOD:
@@ -170,6 +388,30 @@ DESCRIPTION:
 NOTES:
     None.
 
+.. index:: CONFIGURE_IMFS_DISABLE_MKNOD_DEVICE
+
+.. _CONFIGURE_IMFS_DISABLE_MKNOD_DEVICE:
+
+CONFIGURE_IMFS_DISABLE_MKNOD_DEVICE
+-----------------------------------
+
+CONSTANT:
+    ``CONFIGURE_IMFS_DISABLE_MKNOD_DEVICE``
+
+OPTION TYPE:
+    This configuration option is a boolean feature define.
+
+DEFAULT CONFIGURATION:
+    If this configuration option is undefined, then the root IMFS supports making
+    device files.
+
+DESCRIPTION:
+    In case this configuration option is defined, then the root IMFS does not
+    support making device files.
+
+NOTES:
+    None.
+
 .. index:: CONFIGURE_IMFS_DISABLE_MKNOD_FILE
 
 .. _CONFIGURE_IMFS_DISABLE_MKNOD_FILE:
diff --git a/c-user/config/general.rst b/c-user/config/general.rst
index 3615a2c..388a8bf 100644
--- a/c-user/config/general.rst
+++ b/c-user/config/general.rst
@@ -37,6 +37,73 @@ NOTES:
     :ref:`CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY` is also defined, then the
     memory is first dirtied and then zeroed.
 
+    See also :ref:`CONFIGURE_MALLOC_DIRTY`.
+
+.. index:: CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+
+.. _CONFIGURE_DISABLE_NEWLIB_REENTRANCY:
+
+CONFIGURE_DISABLE_NEWLIB_REENTRANCY
+-----------------------------------
+
+CONSTANT:
+    ``CONFIGURE_DISABLE_NEWLIB_REENTRANCY``
+
+OPTION TYPE:
+    This configuration option is a boolean feature define.
+
+DEFAULT CONFIGURATION:
+    If this configuration option is undefined, then the described feature is not
+    enabled.
+
+DESCRIPTION:
+    In case this configuration option is defined, then the Newlib reentrancy
+    support per thread is disabled and a global reentrancy structure is used.
+
+NOTES:
+    You can enable this option to reduce the size of the :term:`TCB`.  Use this
+    option with care, since it can lead to race conditions and undefined system
+    behaviour.  For example, :c:data:`errno` is no longer a thread-local variable
+    if this option is enabled.
+
+.. index:: CONFIGURE_EXECUTIVE_RAM_SIZE
+
+.. _CONFIGURE_EXECUTIVE_RAM_SIZE:
+
+CONFIGURE_EXECUTIVE_RAM_SIZE
+----------------------------
+
+CONSTANT:
+    ``CONFIGURE_EXECUTIVE_RAM_SIZE``
+
+OPTION TYPE:
+    This configuration option is an integer define.
+
+DEFAULT VALUE:
+    If this configuration option is undefined, then the RTEMS Workspace and task
+    stack space size is calculated by ``<rtems/confdefs.h>`` based on the values
+    configuration options.
+
+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 ``UINTPTR_MAX``.
+
+    * 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:
+    The value of this configuration option defines the RTEMS Workspace size in
+    bytes.
+
+NOTES:
+    This is an advanced configuration option.  Use it only if you know exactly
+    what you are doing.
+
 .. index:: CONFIGURE_EXTRA_TASK_STACKS
 .. index:: memory for task tasks
 
@@ -156,6 +223,34 @@ NOTES:
     In releases before RTEMS 5.1 the default value was
     :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE` instead of ``CPU_STACK_MINIMUM_SIZE``.
 
+.. index:: CONFIGURE_MALLOC_DIRTY
+
+.. _CONFIGURE_MALLOC_DIRTY:
+
+CONFIGURE_MALLOC_DIRTY
+----------------------
+
+CONSTANT:
+    ``CONFIGURE_MALLOC_DIRTY``
+
+OPTION TYPE:
+    This configuration option is a boolean feature define.
+
+DEFAULT CONFIGURATION:
+    If this configuration option is undefined, then the described feature is not
+    enabled.
+
+DESCRIPTION:
+    In case this configuration option is defined, then each memory area returned
+    by C Program Heap allocator functions such as :c:func:`malloc` is dirtied
+    with a ``0xCF`` byte pattern before it is handed over to the application.
+
+NOTES:
+    The dirtying performed by this option is carried out for each successful
+    memory allocation from the C Program Heap in contrast to
+    :ref:`CONFIGURE_DIRTY_MEMORY` which dirties the memory only once during the
+    system initialization.
+
 .. index:: CONFIGURE_MAXIMUM_FILE_DESCRIPTORS
 .. index:: maximum file descriptors
 
diff --git a/c-user/config/mpci.rst b/c-user/config/mpci.rst
index f96a703..a3b5e23 100644
--- a/c-user/config/mpci.rst
+++ b/c-user/config/mpci.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)
 
 Multiprocessing Configuration
@@ -38,6 +39,42 @@ NOTES:
     This has no impact unless RTEMS was built with the
     ``--enable-multiprocessing`` build configuration option.
 
+.. index:: CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK
+
+.. _CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK:
+
+CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK
+-----------------------------------------
+
+CONSTANT:
+    ``CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK``
+
+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 ``UINT32_MAX``.
+
+    * It shall be small enough so that the
+      MPCI receive server stack area calculation carried out by
+      ``<rtems/confdefs.h>`` does not overflow an integer of type ``size_t``.
+
+DESCRIPTION:
+    The value of this configuration option defines the number of bytes the
+    applications wishes to add to the MPCI task stack on top of
+    :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+
+NOTES:
+    None.
+
 .. index:: CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
 
 .. _CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS:
diff --git a/c-user/config/posix-api.rst b/c-user/config/posix-api.rst
index 54e8d99..0c84012 100644
--- a/c-user/config/posix-api.rst
+++ b/c-user/config/posix-api.rst
@@ -235,6 +235,51 @@ NOTES:
     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_SHMS
+
+.. _CONFIGURE_MAXIMUM_POSIX_SHMS:
+
+CONFIGURE_MAXIMUM_POSIX_SHMS
+----------------------------
+
+CONSTANT:
+    ``CONFIGURE_MAXIMUM_POSIX_SHMS``
+
+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 shall 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``.
+
+    * 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:
+    The value of this configuration option defines the maximum number of POSIX
+    API Shared Memory objects that can be concurrently active.
+
+NOTES:
+    This object class can be configured in unlimited allocation mode, see
+    :ref:`ConfigUnlimitedObjects`.
+
 .. index:: CONFIGURE_MAXIMUM_POSIX_THREADS
 
 .. _CONFIGURE_MAXIMUM_POSIX_THREADS:
diff --git a/c-user/config/scheduler-general.rst b/c-user/config/scheduler-general.rst
index db8e5ca..0436100 100644
--- a/c-user/config/scheduler-general.rst
+++ b/c-user/config/scheduler-general.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) 2010 Gedare Bloom
 .. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
 
@@ -28,6 +29,83 @@ The pluggable scheduler interface also enables the user to provide their own
 scheduling algorithm.  If you choose to do this, you must define multiple
 configuration option.
 
+.. index:: CONFIGURE_CBS_MAXIMUM_SERVERS
+
+.. _CONFIGURE_CBS_MAXIMUM_SERVERS:
+
+CONFIGURE_CBS_MAXIMUM_SERVERS
+-----------------------------
+
+CONSTANT:
+    ``CONFIGURE_CBS_MAXIMUM_SERVERS``
+
+OPTION TYPE:
+    This configuration option is an integer define.
+
+DEFAULT VALUE:
+    The default value is :ref:`CONFIGURE_MAXIMUM_TASKS`.
+
+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 ``SIZE_MAX``.
+
+    * 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:
+    The value of this configuration option defines the maximum number Constant
+    Bandwidth Servers that can be concurrently active.
+
+NOTES:
+    This configuration option is only evaluated if the configuration option
+    :ref:`CONFIGURE_SCHEDULER_CBS` is defined.
+
+.. index:: CONFIGURE_SCHEDULER_ASSIGNMENTS
+
+.. _CONFIGURE_SCHEDULER_ASSIGNMENTS:
+
+CONFIGURE_SCHEDULER_ASSIGNMENTS
+-------------------------------
+
+CONSTANT:
+    ``CONFIGURE_SCHEDULER_ASSIGNMENTS``
+
+OPTION TYPE:
+    This configuration option is an initializer define.
+
+DEFAULT VALUE:
+    The default value of this configuration option is computed so that the
+    default scheduler is assigned to each configured processor (up to 32).
+
+VALUE CONSTRAINTS:
+    The value of this configuration option shall satisfy all of the following
+    constraints:
+
+    * It shall be a list of the following
+      macros:
+
+      * ``RTEMS_SCHEDULER_ASSIGN( processor_index, attributes )``
+
+      * :c:macro:`RTEMS_SCHEDULER_ASSIGN_NO_SCHEDULER`
+
+    * It shall be a list of exactly
+      :ref:`CONFIGURE_MAXIMUM_PROCESSORS` elements.
+
+DESCRIPTION:
+    The value of this configuration option is used to initialize the initial
+    scheduler to processor assignments.
+
+NOTES:
+    This configuration option is only evaluated in SMP configurations.
+
+    This is an advanced configuration option, see
+    :ref:`ConfigurationSchedulersClustered`.
+
 .. index:: CONFIGURE_SCHEDULER_CBS
 
 .. _CONFIGURE_SCHEDULER_CBS:
@@ -346,6 +424,36 @@ NOTES:
     <ConfigurationSchedulersClustered>` is present, then it is used as the
     scheduler for up to 32 processors.
 
+.. index:: CONFIGURE_SCHEDULER_STRONG_APA
+
+.. _CONFIGURE_SCHEDULER_STRONG_APA:
+
+CONFIGURE_SCHEDULER_STRONG_APA
+------------------------------
+
+CONSTANT:
+    ``CONFIGURE_SCHEDULER_STRONG_APA``
+
+OPTION TYPE:
+    This configuration option is a boolean feature define.
+
+DEFAULT CONFIGURATION:
+    If this configuration option is undefined, then the described feature is not
+    enabled.
+
+DESCRIPTION:
+    In case this configuration option is defined, then Strong APA algorithm is
+    made available to the application.
+
+NOTES:
+    This scheduler configuration option is an advanced configuration option.
+    Think twice before you use it.
+
+    This scheduler algorithm is only available when RTEMS is built with SMP
+    support enabled.
+
+    This scheduler algorithm is not correctly implemented.  Do not use it.
+
 .. index:: CONFIGURE_SCHEDULER_USER
 
 .. _CONFIGURE_SCHEDULER_USER:
diff --git a/c-user/config/task-stack-alloc.rst b/c-user/config/task-stack-alloc.rst
index 513815c..005a643 100644
--- a/c-user/config/task-stack-alloc.rst
+++ b/c-user/config/task-stack-alloc.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)
 
 Task Stack Allocator Configuration
@@ -113,3 +114,60 @@ NOTES:
     - :ref:`CONFIGURE_TASK_STACK_ALLOCATOR`
 
     - `CONFIGURE_TASK_STACK_DEALLOCATOR`
+
+.. index:: CONFIGURE_TASK_STACK_FROM_ALLOCATOR
+.. index:: task stack allocator
+
+.. _CONFIGURE_TASK_STACK_FROM_ALLOCATOR:
+
+CONFIGURE_TASK_STACK_FROM_ALLOCATOR
+-----------------------------------
+
+CONSTANT:
+    ``CONFIGURE_TASK_STACK_FROM_ALLOCATOR``
+
+OPTION TYPE:
+    This configuration option is an initializer define.
+
+DEFAULT VALUE:
+    The default value is a macro which supports the system heap allocator.
+
+VALUE CONSTRAINTS:
+    The value of this configuration option shall be defined to a macro which
+    accepts exactly one parameter and returns an unsigned integer.  The
+    parameter will be an allocation size and the macro shall return this size
+    plus the overhead of the allocator to manage an allocation request for this
+    size.
+
+DESCRIPTION:
+    The value of this configuration option is used to calculate the task stack
+    space size.
+
+NOTES:
+    This configuration option may be used if a custom task stack allocator is
+    configured, see :ref:`CONFIGURE_TASK_STACK_ALLOCATOR`.
+
+.. index:: CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE
+
+.. _CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE:
+
+CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE
+------------------------------------------------
+
+CONSTANT:
+    ``CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE``
+
+OPTION TYPE:
+    This configuration option is a boolean feature define.
+
+DEFAULT CONFIGURATION:
+    If this configuration option is undefined, then the described feature is not
+    enabled.
+
+DESCRIPTION:
+    In case this configuration option is defined, then the system is informed
+    that the task stack allocator does not use the RTEMS Workspace.
+
+NOTES:
+    This configuration option may be used if a custom task stack allocator is
+    configured, see :ref:`CONFIGURE_TASK_STACK_ALLOCATOR`.
-- 
2.16.4



More information about the devel mailing list