[PATCH] c-user: Document all configuration options

Joel Sherrill joel at rtems.org
Tue Mar 31 15:13:13 UTC 2020


At least the MPCI receive server extra thread stack is
only valid to use when multiprocessing (not SMP) is enabled.
This applies to any of the MPCI parameters. This should be
in the notes for those.

I don't know offhand if any of the others should mention a configure
option they relate to.

This is not the patch to fix this but we document the mechanics but
don't give guidance on system integration decisions like selecting
scheduling algorithms or tuning the block device buffering.

On Tue, Mar 31, 2020 at 9:47 AM Sebastian Huber <
sebastian.huber at embedded-brains.de> wrote:

> 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
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20200331/c28f79d0/attachment-0001.html>


More information about the devel mailing list