<div dir="ltr">At least the MPCI receive server extra thread stack is <div>only valid to use when multiprocessing (not SMP) is enabled.</div><div>This applies to any of the MPCI parameters. This should be</div><div>in the notes for those. </div><div><br></div><div>I don't know offhand if any of the others should mention a configure</div><div>option they relate to. <br><div><br></div><div>This is not the patch to fix this but we document the mechanics but</div></div><div>don't give guidance on system integration decisions like selecting </div><div>scheduling algorithms or tuning the block device buffering.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Mar 31, 2020 at 9:47 AM Sebastian Huber <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-brains.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Close #2806.<br>
---<br>
 c-user/config/device-driver.rst     |  81 ++++++++++++<br>
 c-user/config/filesystem.rst        | 242 ++++++++++++++++++++++++++++++++++++<br>
 c-user/config/general.rst           |  95 ++++++++++++++<br>
 c-user/config/mpci.rst              |  37 ++++++<br>
 c-user/config/posix-api.rst         |  45 +++++++<br>
 c-user/config/scheduler-general.rst | 108 ++++++++++++++++<br>
 c-user/config/task-stack-alloc.rst  |  58 +++++++++<br>
 7 files changed, 666 insertions(+)<br>
<br>
diff --git a/c-user/config/device-driver.rst b/c-user/config/device-driver.rst<br>
index 0a18b2d..627c346 100644<br>
--- a/c-user/config/device-driver.rst<br>
+++ b/c-user/config/device-driver.rst<br>
@@ -76,6 +76,33 @@ NOTES:<br>
     See :ref:`CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS` for an alternative<br>
     placement of application device driver initializers.<br>
<br>
+.. index:: CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER<br>
+<br>
+.. _CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER:<br>
+<br>
+CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER<br>
+--------------------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is a boolean feature define.<br>
+<br>
+DEFAULT CONFIGURATION:<br>
+    If this configuration option is undefined, then the described feature is not<br>
+    enabled.<br>
+<br>
+DESCRIPTION:<br>
+    In case this configuration option is defined, then the ATA Driver is<br>
+    initialized during system initialization.<br>
+<br>
+NOTES:<br>
+    Most BSPs do not include support for an ATA Driver.<br>
+<br>
+    If this option is defined and the BSP does not have this device driver, then<br>
+    the user will get a link time error for an undefined symbol.<br>
+<br>
 .. index:: CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER<br>
<br>
 .. _CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER:<br>
@@ -178,6 +205,33 @@ NOTES:<br>
     If this option is defined and the BSP does not have this device driver, then<br>
     the user will get a link time error for an undefined symbol.<br>
<br>
+.. index:: CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER<br>
+<br>
+.. _CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER:<br>
+<br>
+CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER<br>
+--------------------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_APPLICATION_NEEDS_IDE_DRIVER``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is a boolean feature define.<br>
+<br>
+DEFAULT CONFIGURATION:<br>
+    If this configuration option is undefined, then the described feature is not<br>
+    enabled.<br>
+<br>
+DESCRIPTION:<br>
+    In case this configuration option is defined, then the IDE Driver is<br>
+    initialized during system initialization.<br>
+<br>
+NOTES:<br>
+    Most BSPs do not include support for an IDE Driver.<br>
+<br>
+    If this option is defined and the BSP does not have this device driver, then<br>
+    the user will get a link time error for an undefined symbol.<br>
+<br>
 .. index:: CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER<br>
 .. index:: /dev/null<br>
<br>
@@ -471,6 +525,33 @@ NOTES:<br>
     See :ref:`CONFIGURE_APPLICATION_EXTRA_DRIVERS` for an alternative placement<br>
     of application device driver initializers.<br>
<br>
+.. index:: CONFIGURE_ATA_DRIVER_TASK_PRIORITY<br>
+<br>
+.. _CONFIGURE_ATA_DRIVER_TASK_PRIORITY:<br>
+<br>
+CONFIGURE_ATA_DRIVER_TASK_PRIORITY<br>
+----------------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_ATA_DRIVER_TASK_PRIORITY``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is an integer define.<br>
+<br>
+DEFAULT VALUE:<br>
+    The default value is 140.<br>
+<br>
+VALUE CONSTRAINTS:<br>
+    The value of this configuration option shall be a valid Classic API task<br>
+    priority.  The set of valid task priorities is scheduler-specific.<br>
+<br>
+DESCRIPTION:<br>
+    The value of this configuration option defines the ATA task priority.<br>
+<br>
+NOTES:<br>
+    This configuration option is only evaluated if the configuration option<br>
+    :ref:`CONFIGURE_APPLICATION_NEEDS_ATA_DRIVER` is defined.<br>
+<br>
 .. index:: CONFIGURE_MAXIMUM_DRIVERS<br>
<br>
 .. _CONFIGURE_MAXIMUM_DRIVERS:<br>
diff --git a/c-user/config/filesystem.rst b/c-user/config/filesystem.rst<br>
index b4bccc9..ef37307 100644<br>
--- a/c-user/config/filesystem.rst<br>
+++ b/c-user/config/filesystem.rst<br>
@@ -1,5 +1,6 @@<br>
 .. SPDX-License-Identifier: CC-BY-SA-4.0<br>
<br>
+.. Copyright (C) 2020 embedded brains GmbH (<a href="http://www.embedded-brains.de" rel="noreferrer" target="_blank">http://www.embedded-brains.de</a>)<br>
 .. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)<br>
<br>
 Filesystem Configuration<br>
@@ -74,6 +75,223 @@ NOTES:<br>
     drivers and basic input/output functions such as :c:func:`printf`.<br>
     Filesystems can be disabled to reduce the memory footprint of an application.<br>
<br>
+.. index:: CONFIGURE_FILESYSTEM_ALL<br>
+<br>
+.. _CONFIGURE_FILESYSTEM_ALL:<br>
+<br>
+CONFIGURE_FILESYSTEM_ALL<br>
+------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_FILESYSTEM_ALL``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is a boolean feature define.<br>
+<br>
+DEFAULT CONFIGURATION:<br>
+    If this configuration option is undefined, then the described feature is not<br>
+    enabled.<br>
+<br>
+DESCRIPTION:<br>
+    In case this configuration option is defined, then the following<br>
+    configuration options will be defined as well<br>
+<br>
+    - :ref:`CONFIGURE_FILESYSTEM_DOSFS`,<br>
+<br>
+    - :ref:`CONFIGURE_FILESYSTEM_FTPFS`,<br>
+<br>
+    - :ref:`CONFIGURE_FILESYSTEM_IMFS`,<br>
+<br>
+    - :ref:`CONFIGURE_FILESYSTEM_JFFS2`,<br>
+<br>
+    - :ref:`CONFIGURE_FILESYSTEM_NFS`,<br>
+<br>
+    - :ref:`CONFIGURE_FILESYSTEM_RFS`, and<br>
+<br>
+    - :ref:`CONFIGURE_FILESYSTEM_TFTPFS`.<br>
+<br>
+NOTES:<br>
+    None.<br>
+<br>
+.. index:: CONFIGURE_FILESYSTEM_DOSFS<br>
+<br>
+.. _CONFIGURE_FILESYSTEM_DOSFS:<br>
+<br>
+CONFIGURE_FILESYSTEM_DOSFS<br>
+--------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_FILESYSTEM_DOSFS``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is a boolean feature define.<br>
+<br>
+DEFAULT CONFIGURATION:<br>
+    If this configuration option is undefined, then the described feature is not<br>
+    enabled.<br>
+<br>
+DESCRIPTION:<br>
+    In case this configuration option is defined, then the DOS (FAT) filesystem<br>
+    is registered, so that instances of this filesystem can be mounted by the<br>
+    application.<br>
+<br>
+NOTES:<br>
+    This filesystem requires a Block Device Cache configuration, see<br>
+    :ref:`CONFIGURE_APPLICATION_NEEDS_LIBBLOCK`.<br>
+<br>
+.. index:: CONFIGURE_FILESYSTEM_FTPFS<br>
+<br>
+.. _CONFIGURE_FILESYSTEM_FTPFS:<br>
+<br>
+CONFIGURE_FILESYSTEM_FTPFS<br>
+--------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_FILESYSTEM_FTPFS``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is a boolean feature define.<br>
+<br>
+DEFAULT CONFIGURATION:<br>
+    If this configuration option is undefined, then the described feature is not<br>
+    enabled.<br>
+<br>
+DESCRIPTION:<br>
+    In case this configuration option is defined, then the FTP filesystem (FTP<br>
+    client) is registered, so that instances of this filesystem<br>
+    can be mounted by the application.<br>
+<br>
+NOTES:<br>
+    None.<br>
+<br>
+.. index:: CONFIGURE_FILESYSTEM_IMFS<br>
+<br>
+.. _CONFIGURE_FILESYSTEM_IMFS:<br>
+<br>
+CONFIGURE_FILESYSTEM_IMFS<br>
+-------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_FILESYSTEM_IMFS``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is a boolean feature define.<br>
+<br>
+DEFAULT CONFIGURATION:<br>
+    If this configuration option is undefined, then the described feature is not<br>
+    enabled.<br>
+<br>
+DESCRIPTION:<br>
+    In case this configuration option is defined, then the In-Memory Filesystem<br>
+    (IMFS) is registered, so that instances of this filesystem can be mounted by<br>
+    the application.<br>
+<br>
+NOTES:<br>
+    Applications will rarely need this configuration option.  This configuration<br>
+    option is intended for test programs.  You do not need to define this<br>
+    configuration option for the base filesystem (also known as root filesystem).<br>
+<br>
+.. index:: CONFIGURE_FILESYSTEM_JFFS2<br>
+<br>
+.. _CONFIGURE_FILESYSTEM_JFFS2:<br>
+<br>
+CONFIGURE_FILESYSTEM_JFFS2<br>
+--------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_FILESYSTEM_JFFS2``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is a boolean feature define.<br>
+<br>
+DEFAULT CONFIGURATION:<br>
+    If this configuration option is undefined, then the described feature is not<br>
+    enabled.<br>
+<br>
+DESCRIPTION:<br>
+    In case this configuration option is defined, then the JFFS2 filesystem<br>
+    is registered, so that instances of this filesystem can be mounted by the<br>
+    application.<br>
+<br>
+NOTES:<br>
+    None.<br>
+<br>
+.. index:: CONFIGURE_FILESYSTEM_NFS<br>
+<br>
+.. _CONFIGURE_FILESYSTEM_NFS:<br>
+<br>
+CONFIGURE_FILESYSTEM_NFS<br>
+------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_FILESYSTEM_NFS``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is a boolean feature define.<br>
+<br>
+DEFAULT CONFIGURATION:<br>
+    If this configuration option is undefined, then the described feature is not<br>
+    enabled.<br>
+<br>
+DESCRIPTION:<br>
+    In case this configuration option is defined, then the Network Filesystem<br>
+    (NFS) client is registered, so that instances of this filesystem can be<br>
+    mounted by the application.<br>
+<br>
+NOTES:<br>
+    None.<br>
+<br>
+.. index:: CONFIGURE_FILESYSTEM_RFS<br>
+<br>
+.. _CONFIGURE_FILESYSTEM_RFS:<br>
+<br>
+CONFIGURE_FILESYSTEM_RFS<br>
+------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_FILESYSTEM_RFS``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is a boolean feature define.<br>
+<br>
+DEFAULT CONFIGURATION:<br>
+    If this configuration option is undefined, then the described feature is not<br>
+    enabled.<br>
+<br>
+DESCRIPTION:<br>
+    In case this configuration option is defined, then the RTEMS Filesystem (RFS)<br>
+    is registered, so that instances of this filesystem can be mounted by the<br>
+    application.<br>
+<br>
+NOTES:<br>
+    This filesystem requires a Block Device Cache configuration, see<br>
+    :ref:`CONFIGURE_APPLICATION_NEEDS_LIBBLOCK`.<br>
+<br>
+.. index:: CONFIGURE_FILESYSTEM_TFTPFS<br>
+<br>
+.. _CONFIGURE_FILESYSTEM_TFTPFS:<br>
+<br>
+CONFIGURE_FILESYSTEM_TFTPFS<br>
+---------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_FILESYSTEM_TFTPFS``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is a boolean feature define.<br>
+<br>
+DEFAULT CONFIGURATION:<br>
+    If this configuration option is undefined, then the described feature is not<br>
+    enabled.<br>
+<br>
+DESCRIPTION:<br>
+    In case this configuration option is defined, then the TFTP filesystem (TFTP<br>
+    client) is registered, so that instances of this filesystem can be mounted by<br>
+    the application.<br>
+<br>
+NOTES:<br>
+    None.<br>
+<br>
 .. index:: CONFIGURE_IMFS_DISABLE_CHMOD<br>
<br>
 .. _CONFIGURE_IMFS_DISABLE_CHMOD:<br>
@@ -170,6 +388,30 @@ DESCRIPTION:<br>
 NOTES:<br>
     None.<br>
<br>
+.. index:: CONFIGURE_IMFS_DISABLE_MKNOD_DEVICE<br>
+<br>
+.. _CONFIGURE_IMFS_DISABLE_MKNOD_DEVICE:<br>
+<br>
+CONFIGURE_IMFS_DISABLE_MKNOD_DEVICE<br>
+-----------------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_IMFS_DISABLE_MKNOD_DEVICE``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is a boolean feature define.<br>
+<br>
+DEFAULT CONFIGURATION:<br>
+    If this configuration option is undefined, then the root IMFS supports making<br>
+    device files.<br>
+<br>
+DESCRIPTION:<br>
+    In case this configuration option is defined, then the root IMFS does not<br>
+    support making device files.<br>
+<br>
+NOTES:<br>
+    None.<br>
+<br>
 .. index:: CONFIGURE_IMFS_DISABLE_MKNOD_FILE<br>
<br>
 .. _CONFIGURE_IMFS_DISABLE_MKNOD_FILE:<br>
diff --git a/c-user/config/general.rst b/c-user/config/general.rst<br>
index 3615a2c..388a8bf 100644<br>
--- a/c-user/config/general.rst<br>
+++ b/c-user/config/general.rst<br>
@@ -37,6 +37,73 @@ NOTES:<br>
     :ref:`CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY` is also defined, then the<br>
     memory is first dirtied and then zeroed.<br>
<br>
+    See also :ref:`CONFIGURE_MALLOC_DIRTY`.<br>
+<br>
+.. index:: CONFIGURE_DISABLE_NEWLIB_REENTRANCY<br>
+<br>
+.. _CONFIGURE_DISABLE_NEWLIB_REENTRANCY:<br>
+<br>
+CONFIGURE_DISABLE_NEWLIB_REENTRANCY<br>
+-----------------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_DISABLE_NEWLIB_REENTRANCY``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is a boolean feature define.<br>
+<br>
+DEFAULT CONFIGURATION:<br>
+    If this configuration option is undefined, then the described feature is not<br>
+    enabled.<br>
+<br>
+DESCRIPTION:<br>
+    In case this configuration option is defined, then the Newlib reentrancy<br>
+    support per thread is disabled and a global reentrancy structure is used.<br>
+<br>
+NOTES:<br>
+    You can enable this option to reduce the size of the :term:`TCB`.  Use this<br>
+    option with care, since it can lead to race conditions and undefined system<br>
+    behaviour.  For example, :c:data:`errno` is no longer a thread-local variable<br>
+    if this option is enabled.<br>
+<br>
+.. index:: CONFIGURE_EXECUTIVE_RAM_SIZE<br>
+<br>
+.. _CONFIGURE_EXECUTIVE_RAM_SIZE:<br>
+<br>
+CONFIGURE_EXECUTIVE_RAM_SIZE<br>
+----------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_EXECUTIVE_RAM_SIZE``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is an integer define.<br>
+<br>
+DEFAULT VALUE:<br>
+    If this configuration option is undefined, then the RTEMS Workspace and task<br>
+    stack space size is calculated by ``<rtems/confdefs.h>`` based on the values<br>
+    configuration options.<br>
+<br>
+VALUE CONSTRAINTS:<br>
+    The value of this configuration option shall satisfy all of the following<br>
+    constraints:<br>
+<br>
+    * It shall be greater than or equal to 0.<br>
+<br>
+    * It shall be less than or equal to ``UINTPTR_MAX``.<br>
+<br>
+    * It shall be less than or equal to a<br>
+      BSP-specific and application-specific value which depends on the size of the<br>
+      memory available to the application.<br>
+<br>
+DESCRIPTION:<br>
+    The value of this configuration option defines the RTEMS Workspace size in<br>
+    bytes.<br>
+<br>
+NOTES:<br>
+    This is an advanced configuration option.  Use it only if you know exactly<br>
+    what you are doing.<br>
+<br>
 .. index:: CONFIGURE_EXTRA_TASK_STACKS<br>
 .. index:: memory for task tasks<br>
<br>
@@ -156,6 +223,34 @@ NOTES:<br>
     In releases before RTEMS 5.1 the default value was<br>
     :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE` instead of ``CPU_STACK_MINIMUM_SIZE``.<br>
<br>
+.. index:: CONFIGURE_MALLOC_DIRTY<br>
+<br>
+.. _CONFIGURE_MALLOC_DIRTY:<br>
+<br>
+CONFIGURE_MALLOC_DIRTY<br>
+----------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_MALLOC_DIRTY``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is a boolean feature define.<br>
+<br>
+DEFAULT CONFIGURATION:<br>
+    If this configuration option is undefined, then the described feature is not<br>
+    enabled.<br>
+<br>
+DESCRIPTION:<br>
+    In case this configuration option is defined, then each memory area returned<br>
+    by C Program Heap allocator functions such as :c:func:`malloc` is dirtied<br>
+    with a ``0xCF`` byte pattern before it is handed over to the application.<br>
+<br>
+NOTES:<br>
+    The dirtying performed by this option is carried out for each successful<br>
+    memory allocation from the C Program Heap in contrast to<br>
+    :ref:`CONFIGURE_DIRTY_MEMORY` which dirties the memory only once during the<br>
+    system initialization.<br>
+<br>
 .. index:: CONFIGURE_MAXIMUM_FILE_DESCRIPTORS<br>
 .. index:: maximum file descriptors<br>
<br>
diff --git a/c-user/config/mpci.rst b/c-user/config/mpci.rst<br>
index f96a703..a3b5e23 100644<br>
--- a/c-user/config/mpci.rst<br>
+++ b/c-user/config/mpci.rst<br>
@@ -1,5 +1,6 @@<br>
 .. SPDX-License-Identifier: CC-BY-SA-4.0<br>
<br>
+.. Copyright (C) 2020 embedded brains GmbH (<a href="http://www.embedded-brains.de" rel="noreferrer" target="_blank">http://www.embedded-brains.de</a>)<br>
 .. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)<br>
<br>
 Multiprocessing Configuration<br>
@@ -38,6 +39,42 @@ NOTES:<br>
     This has no impact unless RTEMS was built with the<br>
     ``--enable-multiprocessing`` build configuration option.<br>
<br>
+.. index:: CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK<br>
+<br>
+.. _CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK:<br>
+<br>
+CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK<br>
+-----------------------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is an integer define.<br>
+<br>
+DEFAULT VALUE:<br>
+    The default value is 0.<br>
+<br>
+VALUE CONSTRAINTS:<br>
+    The value of this configuration option shall satisfy all of the following<br>
+    constraints:<br>
+<br>
+    * It shall be greater than or equal to 0.<br>
+<br>
+    * It shall be less than or equal to ``UINT32_MAX``.<br>
+<br>
+    * It shall be small enough so that the<br>
+      MPCI receive server stack area calculation carried out by<br>
+      ``<rtems/confdefs.h>`` does not overflow an integer of type ``size_t``.<br>
+<br>
+DESCRIPTION:<br>
+    The value of this configuration option defines the number of bytes the<br>
+    applications wishes to add to the MPCI task stack on top of<br>
+    :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.<br>
+<br>
+NOTES:<br>
+    None.<br>
+<br>
 .. index:: CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS<br>
<br>
 .. _CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS:<br>
diff --git a/c-user/config/posix-api.rst b/c-user/config/posix-api.rst<br>
index 54e8d99..0c84012 100644<br>
--- a/c-user/config/posix-api.rst<br>
+++ b/c-user/config/posix-api.rst<br>
@@ -235,6 +235,51 @@ NOTES:<br>
     initialized with :c:func:`sem_init()` are not affected by this configuration<br>
     option since the storage space for these semaphores is user-provided.<br>
<br>
+.. index:: CONFIGURE_MAXIMUM_POSIX_SHMS<br>
+<br>
+.. _CONFIGURE_MAXIMUM_POSIX_SHMS:<br>
+<br>
+CONFIGURE_MAXIMUM_POSIX_SHMS<br>
+----------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_MAXIMUM_POSIX_SHMS``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is an integer define.<br>
+<br>
+DEFAULT VALUE:<br>
+    The default value is 0.<br>
+<br>
+VALUE CONSTRAINTS:<br>
+    The value of this configuration option shall satisfy all of the following<br>
+    constraints:<br>
+<br>
+    * It shall be greater than or equal to 0.<br>
+<br>
+    * It shall be less than or equal to 65535.<br>
+<br>
+    * It shall be less than or equal to a<br>
+      BSP-specific and application-specific value which depends on the size of the<br>
+      memory available to the application.<br>
+<br>
+    * It shall be small enough so that the<br>
+      RTEMS Workspace size calculation carried out by ``<rtems/confdefs.h>`` does<br>
+      not overflow an integer of type ``uintptr_t``.<br>
+<br>
+    * It may be defined through<br>
+      :c:func:`rtems_resource_unlimited` the enable unlimited objects for this<br>
+      object class, if the value passed to :c:func:`rtems_resource_unlimited`<br>
+      satisfies all other constraints of this configuration option.<br>
+<br>
+DESCRIPTION:<br>
+    The value of this configuration option defines the maximum number of POSIX<br>
+    API Shared Memory objects that can be concurrently active.<br>
+<br>
+NOTES:<br>
+    This object class can be configured in unlimited allocation mode, see<br>
+    :ref:`ConfigUnlimitedObjects`.<br>
+<br>
 .. index:: CONFIGURE_MAXIMUM_POSIX_THREADS<br>
<br>
 .. _CONFIGURE_MAXIMUM_POSIX_THREADS:<br>
diff --git a/c-user/config/scheduler-general.rst b/c-user/config/scheduler-general.rst<br>
index db8e5ca..0436100 100644<br>
--- a/c-user/config/scheduler-general.rst<br>
+++ b/c-user/config/scheduler-general.rst<br>
@@ -1,5 +1,6 @@<br>
 .. SPDX-License-Identifier: CC-BY-SA-4.0<br>
<br>
+.. Copyright (C) 2020 embedded brains GmbH (<a href="http://www.embedded-brains.de" rel="noreferrer" target="_blank">http://www.embedded-brains.de</a>)<br>
 .. Copyright (C) 2010 Gedare Bloom<br>
 .. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)<br>
<br>
@@ -28,6 +29,83 @@ The pluggable scheduler interface also enables the user to provide their own<br>
 scheduling algorithm.  If you choose to do this, you must define multiple<br>
 configuration option.<br>
<br>
+.. index:: CONFIGURE_CBS_MAXIMUM_SERVERS<br>
+<br>
+.. _CONFIGURE_CBS_MAXIMUM_SERVERS:<br>
+<br>
+CONFIGURE_CBS_MAXIMUM_SERVERS<br>
+-----------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_CBS_MAXIMUM_SERVERS``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is an integer define.<br>
+<br>
+DEFAULT VALUE:<br>
+    The default value is :ref:`CONFIGURE_MAXIMUM_TASKS`.<br>
+<br>
+VALUE CONSTRAINTS:<br>
+    The value of this configuration option shall satisfy all of the following<br>
+    constraints:<br>
+<br>
+    * It shall be greater than or equal to 0.<br>
+<br>
+    * It shall be less than or equal to ``SIZE_MAX``.<br>
+<br>
+    * It shall be less than or equal to a<br>
+      BSP-specific and application-specific value which depends on the size of the<br>
+      memory available to the application.<br>
+<br>
+DESCRIPTION:<br>
+    The value of this configuration option defines the maximum number Constant<br>
+    Bandwidth Servers that can be concurrently active.<br>
+<br>
+NOTES:<br>
+    This configuration option is only evaluated if the configuration option<br>
+    :ref:`CONFIGURE_SCHEDULER_CBS` is defined.<br>
+<br>
+.. index:: CONFIGURE_SCHEDULER_ASSIGNMENTS<br>
+<br>
+.. _CONFIGURE_SCHEDULER_ASSIGNMENTS:<br>
+<br>
+CONFIGURE_SCHEDULER_ASSIGNMENTS<br>
+-------------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_SCHEDULER_ASSIGNMENTS``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is an initializer define.<br>
+<br>
+DEFAULT VALUE:<br>
+    The default value of this configuration option is computed so that the<br>
+    default scheduler is assigned to each configured processor (up to 32).<br>
+<br>
+VALUE CONSTRAINTS:<br>
+    The value of this configuration option shall satisfy all of the following<br>
+    constraints:<br>
+<br>
+    * It shall be a list of the following<br>
+      macros:<br>
+<br>
+      * ``RTEMS_SCHEDULER_ASSIGN( processor_index, attributes )``<br>
+<br>
+      * :c:macro:`RTEMS_SCHEDULER_ASSIGN_NO_SCHEDULER`<br>
+<br>
+    * It shall be a list of exactly<br>
+      :ref:`CONFIGURE_MAXIMUM_PROCESSORS` elements.<br>
+<br>
+DESCRIPTION:<br>
+    The value of this configuration option is used to initialize the initial<br>
+    scheduler to processor assignments.<br>
+<br>
+NOTES:<br>
+    This configuration option is only evaluated in SMP configurations.<br>
+<br>
+    This is an advanced configuration option, see<br>
+    :ref:`ConfigurationSchedulersClustered`.<br>
+<br>
 .. index:: CONFIGURE_SCHEDULER_CBS<br>
<br>
 .. _CONFIGURE_SCHEDULER_CBS:<br>
@@ -346,6 +424,36 @@ NOTES:<br>
     <ConfigurationSchedulersClustered>` is present, then it is used as the<br>
     scheduler for up to 32 processors.<br>
<br>
+.. index:: CONFIGURE_SCHEDULER_STRONG_APA<br>
+<br>
+.. _CONFIGURE_SCHEDULER_STRONG_APA:<br>
+<br>
+CONFIGURE_SCHEDULER_STRONG_APA<br>
+------------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_SCHEDULER_STRONG_APA``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is a boolean feature define.<br>
+<br>
+DEFAULT CONFIGURATION:<br>
+    If this configuration option is undefined, then the described feature is not<br>
+    enabled.<br>
+<br>
+DESCRIPTION:<br>
+    In case this configuration option is defined, then Strong APA algorithm is<br>
+    made available to the application.<br>
+<br>
+NOTES:<br>
+    This scheduler configuration option is an advanced configuration option.<br>
+    Think twice before you use it.<br>
+<br>
+    This scheduler algorithm is only available when RTEMS is built with SMP<br>
+    support enabled.<br>
+<br>
+    This scheduler algorithm is not correctly implemented.  Do not use it.<br>
+<br>
 .. index:: CONFIGURE_SCHEDULER_USER<br>
<br>
 .. _CONFIGURE_SCHEDULER_USER:<br>
diff --git a/c-user/config/task-stack-alloc.rst b/c-user/config/task-stack-alloc.rst<br>
index 513815c..005a643 100644<br>
--- a/c-user/config/task-stack-alloc.rst<br>
+++ b/c-user/config/task-stack-alloc.rst<br>
@@ -1,5 +1,6 @@<br>
 .. SPDX-License-Identifier: CC-BY-SA-4.0<br>
<br>
+.. Copyright (C) 2020 embedded brains GmbH (<a href="http://www.embedded-brains.de" rel="noreferrer" target="_blank">http://www.embedded-brains.de</a>)<br>
 .. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)<br>
<br>
 Task Stack Allocator Configuration<br>
@@ -113,3 +114,60 @@ NOTES:<br>
     - :ref:`CONFIGURE_TASK_STACK_ALLOCATOR`<br>
<br>
     - `CONFIGURE_TASK_STACK_DEALLOCATOR`<br>
+<br>
+.. index:: CONFIGURE_TASK_STACK_FROM_ALLOCATOR<br>
+.. index:: task stack allocator<br>
+<br>
+.. _CONFIGURE_TASK_STACK_FROM_ALLOCATOR:<br>
+<br>
+CONFIGURE_TASK_STACK_FROM_ALLOCATOR<br>
+-----------------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_TASK_STACK_FROM_ALLOCATOR``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is an initializer define.<br>
+<br>
+DEFAULT VALUE:<br>
+    The default value is a macro which supports the system heap allocator.<br>
+<br>
+VALUE CONSTRAINTS:<br>
+    The value of this configuration option shall be defined to a macro which<br>
+    accepts exactly one parameter and returns an unsigned integer.  The<br>
+    parameter will be an allocation size and the macro shall return this size<br>
+    plus the overhead of the allocator to manage an allocation request for this<br>
+    size.<br>
+<br>
+DESCRIPTION:<br>
+    The value of this configuration option is used to calculate the task stack<br>
+    space size.<br>
+<br>
+NOTES:<br>
+    This configuration option may be used if a custom task stack allocator is<br>
+    configured, see :ref:`CONFIGURE_TASK_STACK_ALLOCATOR`.<br>
+<br>
+.. index:: CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE<br>
+<br>
+.. _CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE:<br>
+<br>
+CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE<br>
+------------------------------------------------<br>
+<br>
+CONSTANT:<br>
+    ``CONFIGURE_TASK_STACK_ALLOCATOR_AVOIDS_WORK_SPACE``<br>
+<br>
+OPTION TYPE:<br>
+    This configuration option is a boolean feature define.<br>
+<br>
+DEFAULT CONFIGURATION:<br>
+    If this configuration option is undefined, then the described feature is not<br>
+    enabled.<br>
+<br>
+DESCRIPTION:<br>
+    In case this configuration option is defined, then the system is informed<br>
+    that the task stack allocator does not use the RTEMS Workspace.<br>
+<br>
+NOTES:<br>
+    This configuration option may be used if a custom task stack allocator is<br>
+    configured, see :ref:`CONFIGURE_TASK_STACK_ALLOCATOR`.<br>
-- <br>
2.16.4<br>
<br>
_______________________________________________<br>
devel mailing list<br>
<a href="mailto:devel@rtems.org" target="_blank">devel@rtems.org</a><br>
<a href="http://lists.rtems.org/mailman/listinfo/devel" rel="noreferrer" target="_blank">http://lists.rtems.org/mailman/listinfo/devel</a><br>
</blockquote></div>