c-user: Document all configuration options

Close #2806.
This commit is contained in:
Sebastian Huber 2020-03-31 16:42:43 +02:00
parent 7bad8940ad
commit 4032c96da9
7 changed files with 666 additions and 0 deletions

View File

@ -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:

View File

@ -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:

View File

@ -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

View File

@ -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:

View File

@ -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:

View File

@ -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:

View File

@ -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`.