summaryrefslogtreecommitdiffstats
path: root/c-user
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-03-06 14:32:37 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-03-09 07:38:00 +0100
commit7a414f92631dd356f9dea27f1a210bcf1acf46f9 (patch)
tree753667751c15c6b9c07a9d860181ee7e29fb61ea /c-user
parentc-user: Canonicalize configuration section names (diff)
downloadrtems-docs-7a414f92631dd356f9dea27f1a210bcf1acf46f9.tar.bz2
c-user: Sort configuration options alphabetically
Update #3836.
Diffstat (limited to 'c-user')
-rw-r--r--c-user/configuring_a_system.rst1671
1 files changed, 833 insertions, 838 deletions
diff --git a/c-user/configuring_a_system.rst b/c-user/configuring_a_system.rst
index 08471b5..87da412 100644
--- a/c-user/configuring_a_system.rst
+++ b/c-user/configuring_a_system.rst
@@ -1060,15 +1060,15 @@ Classic API Configuration
This section defines the Classic API related system configuration parameters
supported by ``<rtems/confdefs.h>``.
-.. index:: CONFIGURE_MAXIMUM_TASKS
+.. index:: CONFIGURE_MAXIMUM_BARRIERS
-.. _CONFIGURE_MAXIMUM_TASKS:
+.. _CONFIGURE_MAXIMUM_BARRIERS:
-CONFIGURE_MAXIMUM_TASKS
------------------------
+CONFIGURE_MAXIMUM_BARRIERS
+--------------------------
CONSTANT:
- ``CONFIGURE_MAXIMUM_TASKS``
+ ``CONFIGURE_MAXIMUM_BARRIERS``
DATA TYPE:
Unsigned integer (``uint32_t``).
@@ -1077,42 +1077,24 @@ RANGE:
Zero or positive.
DEFAULT VALUE:
- The default value is ``0``.
+ The default value is 0.
DESCRIPTION:
- ``CONFIGURE_MAXIMUM_TASKS`` is the maximum number of Classic API Tasks that
- can be concurrently active.
+ ``CONFIGURE_MAXIMUM_BARRIERS`` is the maximum number of Classic API
+ Barriers that can be concurrently active.
NOTES:
This object class can be configured in unlimited allocation mode.
- The calculations for the required memory in the RTEMS Workspace for tasks
- assume that each task has a minimum stack size and has floating point
- support enabled. The configuration parameter
- ``CONFIGURE_EXTRA_TASK_STACKS`` is used to specify task stack requirements
- *ABOVE* the minimum size required. See :ref:`Reserve Task/Thread Stack
- Memory Above Minimum` for more information about
- ``CONFIGURE_EXTRA_TASK_STACKS``.
-
- The maximum number of POSIX threads is specified by
- :ref:`CONFIGURE_MAXIMUM_POSIX_THREADS <CONFIGURE_MAXIMUM_POSIX_THREADS>`.
-
- A future enhancement to ``<rtems/confdefs.h>`` could be to eliminate the
- assumption that all tasks have floating point enabled. This would require
- the addition of a new configuration parameter to specify the number of
- tasks which enable floating point support.
-
-.. COMMENT: XXX - Add xref to CONFIGURE_MAXIMUM_POSIX_THREADS.
-
-.. index:: CONFIGURE_MAXIMUM_TIMERS
+.. index:: CONFIGURE_MAXIMUM_MESSAGE_QUEUES
-.. _CONFIGURE_MAXIMUM_TIMERS:
+.. _CONFIGURE_MAXIMUM_MESSAGE_QUEUES:
-CONFIGURE_MAXIMUM_TIMERS
-------------------------
+CONFIGURE_MAXIMUM_MESSAGE_QUEUES
+--------------------------------
CONSTANT:
- ``CONFIGURE_MAXIMUM_TIMERS``
+ ``CONFIGURE_MAXIMUM_MESSAGE_QUEUES``
DATA TYPE:
Unsigned integer (``uint32_t``).
@@ -1124,21 +1106,23 @@ DEFAULT VALUE:
The default value is 0.
DESCRIPTION:
- ``CONFIGURE_MAXIMUM_TIMERS`` is the maximum number of Classic API Timers
- that can be concurrently active.
+ ``CONFIGURE_MAXIMUM_MESSAGE_QUEUES`` is the maximum number of Classic API
+ Message Queues that can be concurrently active.
NOTES:
- This object class can be configured in unlimited allocation mode.
+ This object class can be configured in unlimited allocation mode. You have
+ to account for the memory used to store the messages of each message queue,
+ see :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
-.. index:: CONFIGURE_MAXIMUM_SEMAPHORES
+.. index:: CONFIGURE_MAXIMUM_PARTITIONS
-.. _CONFIGURE_MAXIMUM_SEMAPHORES:
+.. _CONFIGURE_MAXIMUM_PARTITIONS:
-CONFIGURE_MAXIMUM_SEMAPHORES
+CONFIGURE_MAXIMUM_PARTITIONS
----------------------------
CONSTANT:
- ``CONFIGURE_MAXIMUM_SEMAPHORES``
+ ``CONFIGURE_MAXIMUM_PARTITIONS``
DATA TYPE:
Unsigned integer (``uint32_t``).
@@ -1150,25 +1134,21 @@ DEFAULT VALUE:
The default value is 0.
DESCRIPTION:
- ``CONFIGURE_MAXIMUM_SEMAPHORES`` is the maximum number of Classic API
- Semaphores that can be concurrently active.
+ ``CONFIGURE_MAXIMUM_PARTITIONS`` is the maximum number of Classic API
+ Partitions that can be concurrently active.
NOTES:
This object class can be configured in unlimited allocation mode.
- In SMP configurations, the size of a Semaphore Control Block depends on the
- scheduler count (see :ref:`ConfigurationSchedulerTable`). The semaphores
- using the :ref:`MrsP` need a ceiling priority per scheduler.
-
-.. index:: CONFIGURE_MAXIMUM_MESSAGE_QUEUES
+.. index:: CONFIGURE_MAXIMUM_PERIODS
-.. _CONFIGURE_MAXIMUM_MESSAGE_QUEUES:
+.. _CONFIGURE_MAXIMUM_PERIODS:
-CONFIGURE_MAXIMUM_MESSAGE_QUEUES
---------------------------------
+CONFIGURE_MAXIMUM_PERIODS
+-------------------------
CONSTANT:
- ``CONFIGURE_MAXIMUM_MESSAGE_QUEUES``
+ ``CONFIGURE_MAXIMUM_PERIODS``
DATA TYPE:
Unsigned integer (``uint32_t``).
@@ -1180,23 +1160,21 @@ DEFAULT VALUE:
The default value is 0.
DESCRIPTION:
- ``CONFIGURE_MAXIMUM_MESSAGE_QUEUES`` is the maximum number of Classic API
- Message Queues that can be concurrently active.
+ ``CONFIGURE_MAXIMUM_PERIODS`` is the maximum number of Classic API Periods
+ that can be concurrently active.
NOTES:
- This object class can be configured in unlimited allocation mode. You have
- to account for the memory used to store the messages of each message queue,
- see :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
+ This object class can be configured in unlimited allocation mode.
-.. index:: CONFIGURE_MAXIMUM_BARRIERS
+.. index:: CONFIGURE_MAXIMUM_PORTS
-.. _CONFIGURE_MAXIMUM_BARRIERS:
+.. _CONFIGURE_MAXIMUM_PORTS:
-CONFIGURE_MAXIMUM_BARRIERS
---------------------------
+CONFIGURE_MAXIMUM_PORTS
+-----------------------
CONSTANT:
- ``CONFIGURE_MAXIMUM_BARRIERS``
+ ``CONFIGURE_MAXIMUM_PORTS``
DATA TYPE:
Unsigned integer (``uint32_t``).
@@ -1208,21 +1186,21 @@ DEFAULT VALUE:
The default value is 0.
DESCRIPTION:
- ``CONFIGURE_MAXIMUM_BARRIERS`` is the maximum number of Classic API
- Barriers that can be concurrently active.
+ ``CONFIGURE_MAXIMUM_PORTS`` is the maximum number of Classic API Ports that
+ can be concurrently active.
NOTES:
This object class can be configured in unlimited allocation mode.
-.. index:: CONFIGURE_MAXIMUM_PERIODS
+.. index:: CONFIGURE_MAXIMUM_REGIONS
-.. _CONFIGURE_MAXIMUM_PERIODS:
+.. _CONFIGURE_MAXIMUM_REGIONS:
-CONFIGURE_MAXIMUM_PERIODS
+CONFIGURE_MAXIMUM_REGIONS
-------------------------
CONSTANT:
- ``CONFIGURE_MAXIMUM_PERIODS``
+ ``CONFIGURE_MAXIMUM_REGIONS``
DATA TYPE:
Unsigned integer (``uint32_t``).
@@ -1234,21 +1212,21 @@ DEFAULT VALUE:
The default value is 0.
DESCRIPTION:
- ``CONFIGURE_MAXIMUM_PERIODS`` is the maximum number of Classic API Periods
+ ``CONFIGURE_MAXIMUM_REGIONS`` is the maximum number of Classic API Regions
that can be concurrently active.
NOTES:
- This object class can be configured in unlimited allocation mode.
+ None.
-.. index:: CONFIGURE_MAXIMUM_PARTITIONS
+.. index:: CONFIGURE_MAXIMUM_SEMAPHORES
-.. _CONFIGURE_MAXIMUM_PARTITIONS:
+.. _CONFIGURE_MAXIMUM_SEMAPHORES:
-CONFIGURE_MAXIMUM_PARTITIONS
+CONFIGURE_MAXIMUM_SEMAPHORES
----------------------------
CONSTANT:
- ``CONFIGURE_MAXIMUM_PARTITIONS``
+ ``CONFIGURE_MAXIMUM_SEMAPHORES``
DATA TYPE:
Unsigned integer (``uint32_t``).
@@ -1260,21 +1238,25 @@ DEFAULT VALUE:
The default value is 0.
DESCRIPTION:
- ``CONFIGURE_MAXIMUM_PARTITIONS`` is the maximum number of Classic API
- Partitions that can be concurrently active.
+ ``CONFIGURE_MAXIMUM_SEMAPHORES`` is the maximum number of Classic API
+ Semaphores that can be concurrently active.
NOTES:
This object class can be configured in unlimited allocation mode.
-.. index:: CONFIGURE_MAXIMUM_REGIONS
+ In SMP configurations, the size of a Semaphore Control Block depends on the
+ scheduler count (see :ref:`ConfigurationSchedulerTable`). The semaphores
+ using the :ref:`MrsP` need a ceiling priority per scheduler.
-.. _CONFIGURE_MAXIMUM_REGIONS:
+.. index:: CONFIGURE_MAXIMUM_TASKS
-CONFIGURE_MAXIMUM_REGIONS
--------------------------
+.. _CONFIGURE_MAXIMUM_TASKS:
+
+CONFIGURE_MAXIMUM_TASKS
+-----------------------
CONSTANT:
- ``CONFIGURE_MAXIMUM_REGIONS``
+ ``CONFIGURE_MAXIMUM_TASKS``
DATA TYPE:
Unsigned integer (``uint32_t``).
@@ -1283,24 +1265,40 @@ RANGE:
Zero or positive.
DEFAULT VALUE:
- The default value is 0.
+ The default value is ``0``.
DESCRIPTION:
- ``CONFIGURE_MAXIMUM_REGIONS`` is the maximum number of Classic API Regions
- that can be concurrently active.
+ ``CONFIGURE_MAXIMUM_TASKS`` is the maximum number of Classic API Tasks that
+ can be concurrently active.
NOTES:
- None.
+ This object class can be configured in unlimited allocation mode.
-.. index:: CONFIGURE_MAXIMUM_PORTS
+ The calculations for the required memory in the RTEMS Workspace for tasks
+ assume that each task has a minimum stack size and has floating point
+ support enabled. The configuration parameter
+ ``CONFIGURE_EXTRA_TASK_STACKS`` is used to specify task stack requirements
+ *ABOVE* the minimum size required. See :ref:`Reserve Task/Thread Stack
+ Memory Above Minimum` for more information about
+ ``CONFIGURE_EXTRA_TASK_STACKS``.
-.. _CONFIGURE_MAXIMUM_PORTS:
+ The maximum number of POSIX threads is specified by
+ :ref:`CONFIGURE_MAXIMUM_POSIX_THREADS <CONFIGURE_MAXIMUM_POSIX_THREADS>`.
-CONFIGURE_MAXIMUM_PORTS
------------------------
+ A future enhancement to ``<rtems/confdefs.h>`` could be to eliminate the
+ assumption that all tasks have floating point enabled. This would require
+ the addition of a new configuration parameter to specify the number of
+ tasks which enable floating point support.
+
+.. index:: CONFIGURE_MAXIMUM_TIMERS
+
+.. _CONFIGURE_MAXIMUM_TIMERS:
+
+CONFIGURE_MAXIMUM_TIMERS
+------------------------
CONSTANT:
- ``CONFIGURE_MAXIMUM_PORTS``
+ ``CONFIGURE_MAXIMUM_TIMERS``
DATA TYPE:
Unsigned integer (``uint32_t``).
@@ -1312,8 +1310,8 @@ DEFAULT VALUE:
The default value is 0.
DESCRIPTION:
- ``CONFIGURE_MAXIMUM_PORTS`` is the maximum number of Classic API Ports that
- can be concurrently active.
+ ``CONFIGURE_MAXIMUM_TIMERS`` is the maximum number of Classic API Timers
+ that can be concurrently active.
NOTES:
This object class can be configured in unlimited allocation mode.
@@ -1351,41 +1349,57 @@ The ``<rtems/confdefs.h>`` configuration system can automatically generate an
Initialization Tasks Table named ``Initialization_tasks`` with a single entry.
The following parameters control the generation of that table.
-.. index:: CONFIGURE_RTEMS_INIT_TASKS_TABLE
+.. index:: CONFIGURE_INIT_TASK_ARGUMENTS
-.. _CONFIGURE_RTEMS_INIT_TASKS_TABLE:
+.. _CONFIGURE_INIT_TASK_ARGUMENTS:
-CONFIGURE_RTEMS_INIT_TASKS_TABLE
---------------------------------
+CONFIGURE_INIT_TASK_ARGUMENTS
+-----------------------------
CONSTANT:
- ``CONFIGURE_RTEMS_INIT_TASKS_TABLE``
+ ``CONFIGURE_INIT_TASK_ARGUMENTS``
DATA TYPE:
- Boolean feature macro.
+ RTEMS Task Argument (``rtems_task_argument``).
RANGE:
- Defined or undefined.
+ Complete range of the type.
DEFAULT VALUE:
- This is not defined by default.
+ The default value is 0.
DESCRIPTION:
- ``CONFIGURE_RTEMS_INIT_TASKS_TABLE`` is defined if the user wishes to use a
- Classic RTEMS API Initialization Task Table. The table built by
- ``<rtems/confdefs.h>`` specifies the parameters for a single task. This is
- sufficient for applications which initialization the system from a single
- task.
-
- By default, this field is not defined as the user MUST select their own API
- for initialization tasks.
+ ``CONFIGURE_INIT_TASK_ARGUMENTS`` is the task argument of the single
+ initialization task defined by the Classic API Initialization Tasks Table.
NOTES:
- The application may choose to use the initialization tasks or threads table
- from another API.
+ None.
- A compile time error will be generated if the user does not configure any
- initialization tasks or threads.
+.. index:: CONFIGURE_INIT_TASK_ATTRIBUTES
+
+.. _CONFIGURE_INIT_TASK_ATTRIBUTES:
+
+CONFIGURE_INIT_TASK_ATTRIBUTES
+------------------------------
+
+CONSTANT:
+ ``CONFIGURE_INIT_TASK_ATTRIBUTES``
+
+DATA TYPE:
+ RTEMS Attributes (``rtems_attribute``).
+
+RANGE:
+ Valid task attribute sets.
+
+DEFAULT VALUE:
+ The default value is ``RTEMS_DEFAULT_ATTRIBUTES``.
+
+DESCRIPTION:
+ ``CONFIGURE_INIT_TASK_ATTRIBUTES`` is the task attributes of the single
+ initialization task defined by the Classic API Initialization Tasks Table.
+
+NOTES:
+ None.
.. index:: CONFIGURE_INIT_TASK_ENTRY_POINT
@@ -1415,60 +1429,58 @@ NOTES:
The user must implement the function ``Init`` or the function name provided
in this configuration parameter.
-.. index:: CONFIGURE_INIT_TASK_NAME
+.. index:: CONFIGURE_INIT_TASK_INITIAL_MODES
-.. _CONFIGURE_INIT_TASK_NAME:
+.. _CONFIGURE_INIT_TASK_INITIAL_MODES:
-CONFIGURE_INIT_TASK_NAME
-------------------------
+CONFIGURE_INIT_TASK_INITIAL_MODES
+---------------------------------
CONSTANT:
- ``CONFIGURE_INIT_TASK_NAME``
+ ``CONFIGURE_INIT_TASK_INITIAL_MODES``
DATA TYPE:
- RTEMS Name (``rtems_name``).
+ RTEMS Mode (``rtems_mode``).
RANGE:
- Any value.
+ Valid task mode sets.
DEFAULT VALUE:
- The default value is ``rtems_build_name( 'U', 'I', '1', ' ' )``.
+ The default value is ``RTEMS_NO_PREEMPT``.
DESCRIPTION:
- ``CONFIGURE_INIT_TASK_NAME`` is the name of the single initialization task
- defined by the Classic API Initialization Tasks Table.
+ ``CONFIGURE_INIT_TASK_INITIAL_MODES`` is the initial execution mode of the
+ single initialization task defined by the Classic API Initialization Tasks
+ Table.
NOTES:
None.
-.. index:: CONFIGURE_INIT_TASK_STACK_SIZE
+.. index:: CONFIGURE_INIT_TASK_NAME
-.. _CONFIGURE_INIT_TASK_STACK_SIZE:
+.. _CONFIGURE_INIT_TASK_NAME:
-CONFIGURE_INIT_TASK_STACK_SIZE
-------------------------------
+CONFIGURE_INIT_TASK_NAME
+------------------------
CONSTANT:
- ``CONFIGURE_INIT_TASK_STACK_SIZE``
+ ``CONFIGURE_INIT_TASK_NAME``
DATA TYPE:
- Unsigned integer (``size_t``).
+ RTEMS Name (``rtems_name``).
RANGE:
- Zero or positive.
+ Any value.
DEFAULT VALUE:
- The default value is RTEMS_MINIMUM_STACK_SIZE.
+ The default value is ``rtems_build_name( 'U', 'I', '1', ' ' )``.
DESCRIPTION:
- ``CONFIGURE_INIT_TASK_STACK_SIZE`` is the stack size of the single
- initialization task defined by the Classic API Initialization Tasks Table.
+ ``CONFIGURE_INIT_TASK_NAME`` is the name of the single initialization task
+ defined by the Classic API Initialization Tasks Table.
NOTES:
- If the stack size specified is greater than the configured minimum, it must
- be accounted for in ``CONFIGURE_EXTRA_TASK_STACKS``. See :ref:`Reserve
- Task/Thread Stack Memory Above Minimum` for more information about
- ``CONFIGURE_EXTRA_TASK_STACKS``.
+ None.
.. index:: CONFIGURE_INIT_TASK_PRIORITY
@@ -1496,85 +1508,70 @@ DESCRIPTION:
NOTES:
None.
+.. index:: CONFIGURE_INIT_TASK_STACK_SIZE
-.. index:: CONFIGURE_INIT_TASK_ATTRIBUTES
-
-.. _CONFIGURE_INIT_TASK_ATTRIBUTES:
+.. _CONFIGURE_INIT_TASK_STACK_SIZE:
-CONFIGURE_INIT_TASK_ATTRIBUTES
+CONFIGURE_INIT_TASK_STACK_SIZE
------------------------------
CONSTANT:
- ``CONFIGURE_INIT_TASK_ATTRIBUTES``
+ ``CONFIGURE_INIT_TASK_STACK_SIZE``
DATA TYPE:
- RTEMS Attributes (``rtems_attribute``).
+ Unsigned integer (``size_t``).
RANGE:
- Valid task attribute sets.
+ Zero or positive.
DEFAULT VALUE:
- The default value is ``RTEMS_DEFAULT_ATTRIBUTES``.
+ The default value is RTEMS_MINIMUM_STACK_SIZE.
DESCRIPTION:
- ``CONFIGURE_INIT_TASK_ATTRIBUTES`` is the task attributes of the single
+ ``CONFIGURE_INIT_TASK_STACK_SIZE`` is the stack size of the single
initialization task defined by the Classic API Initialization Tasks Table.
NOTES:
- None.
+ If the stack size specified is greater than the configured minimum, it must
+ be accounted for in ``CONFIGURE_EXTRA_TASK_STACKS``. See :ref:`Reserve
+ Task/Thread Stack Memory Above Minimum` for more information about
+ ``CONFIGURE_EXTRA_TASK_STACKS``.
-.. index:: CONFIGURE_INIT_TASK_INITIAL_MODES
+.. index:: CONFIGURE_RTEMS_INIT_TASKS_TABLE
-.. _CONFIGURE_INIT_TASK_INITIAL_MODES:
+.. _CONFIGURE_RTEMS_INIT_TASKS_TABLE:
-CONFIGURE_INIT_TASK_INITIAL_MODES
----------------------------------
+CONFIGURE_RTEMS_INIT_TASKS_TABLE
+--------------------------------
CONSTANT:
- ``CONFIGURE_INIT_TASK_INITIAL_MODES``
+ ``CONFIGURE_RTEMS_INIT_TASKS_TABLE``
DATA TYPE:
- RTEMS Mode (``rtems_mode``).
+ Boolean feature macro.
RANGE:
- Valid task mode sets.
+ Defined or undefined.
DEFAULT VALUE:
- The default value is ``RTEMS_NO_PREEMPT``.
+ This is not defined by default.
DESCRIPTION:
- ``CONFIGURE_INIT_TASK_INITIAL_MODES`` is the initial execution mode of the
- single initialization task defined by the Classic API Initialization Tasks
- Table.
-
-NOTES:
- None.
-
-.. index:: CONFIGURE_INIT_TASK_ARGUMENTS
-
-.. _CONFIGURE_INIT_TASK_ARGUMENTS:
-
-CONFIGURE_INIT_TASK_ARGUMENTS
------------------------------
-
-CONSTANT:
- ``CONFIGURE_INIT_TASK_ARGUMENTS``
-
-DATA TYPE:
- RTEMS Task Argument (``rtems_task_argument``).
-
-RANGE:
- Complete range of the type.
-
-DEFAULT VALUE:
- The default value is 0.
+ ``CONFIGURE_RTEMS_INIT_TASKS_TABLE`` is defined if the user wishes to use a
+ Classic RTEMS API Initialization Task Table. The table built by
+ ``<rtems/confdefs.h>`` specifies the parameters for a single task. This is
+ sufficient for applications which initialization the system from a single
+ task.
-DESCRIPTION:
- ``CONFIGURE_INIT_TASK_ARGUMENTS`` is the task argument of the single
- initialization task defined by the Classic API Initialization Tasks Table.
+ By default, this field is not defined as the user MUST select their own API
+ for initialization tasks.
NOTES:
- None.
+ The application may choose to use the initialization tasks or threads table
+ from another API.
+
+ A compile time error will be generated if the user does not configure any
+ initialization tasks or threads.
POSIX API Configuration
=======================
@@ -1832,44 +1829,6 @@ The ``<rtems/confdefs.h>`` configuration system can automatically generate a
POSIX Initialization Threads Table named ``POSIX_Initialization_threads`` with
a single entry. The following parameters control the generation of that table.
-.. index:: CONFIGURE_POSIX_INIT_THREAD_TABLE
-
-.. _CONFIGURE_POSIX_INIT_THREAD_TABLE:
-
-CONFIGURE_POSIX_INIT_THREAD_TABLE
----------------------------------
-
-CONSTANT:
-
- ``CONFIGURE_POSIX_INIT_THREAD_TABLE``
-
-DATA TYPE:
- Boolean feature macro.
-
-RANGE:
- Defined or undefined.
-
-DEFAULT VALUE:
- This field is not defined by default, as the user MUST select their own API
- for initialization tasks.
-
-DESCRIPTION:
- ``CONFIGURE_POSIX_INIT_THREAD_TABLE`` is defined if the user wishes to use
- a POSIX API Initialization Threads Table. The table built by
- ``<rtems/confdefs.h>`` specifies the parameters for a single thread. This
- is sufficient for applications which initialization the system from a
- single task.
-
- By default, this field is not defined as the user MUST select their own API
- for initialization tasks.
-
-NOTES:
- The application may choose to use the initialization tasks or threads table
- from another API.
-
- A compile time error will be generated if the user does not configure any
- initialization tasks or threads.
-
.. index:: CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT
.. _CONFIGURE_POSIX_INIT_THREAD_ENTRY_POINT:
@@ -1928,6 +1887,44 @@ NOTES:
Task/Thread Stack Memory Above Minimum` for more information about
``CONFIGURE_EXTRA_TASK_STACKS``.
+.. index:: CONFIGURE_POSIX_INIT_THREAD_TABLE
+
+.. _CONFIGURE_POSIX_INIT_THREAD_TABLE:
+
+CONFIGURE_POSIX_INIT_THREAD_TABLE
+---------------------------------
+
+CONSTANT:
+
+ ``CONFIGURE_POSIX_INIT_THREAD_TABLE``
+
+DATA TYPE:
+ Boolean feature macro.
+
+RANGE:
+ Defined or undefined.
+
+DEFAULT VALUE:
+ This field is not defined by default, as the user MUST select their own API
+ for initialization tasks.
+
+DESCRIPTION:
+ ``CONFIGURE_POSIX_INIT_THREAD_TABLE`` is defined if the user wishes to use
+ a POSIX API Initialization Threads Table. The table built by
+ ``<rtems/confdefs.h>`` specifies the parameters for a single thread. This
+ is sufficient for applications which initialization the system from a
+ single task.
+
+ By default, this field is not defined as the user MUST select their own API
+ for initialization tasks.
+
+NOTES:
+ The application may choose to use the initialization tasks or threads table
+ from another API.
+
+ A compile time error will be generated if the user does not configure any
+ initialization tasks or threads.
+
Task Stack Allocator Configuration
==================================
@@ -1936,30 +1933,30 @@ deallocation methods for task stacks. This can be used to place task stacks in
special areas of memory or to utilize a Memory Management Unit so that stack
overflows are detected in hardware.
-.. index:: CONFIGURE_TASK_STACK_ALLOCATOR_INIT
+.. index:: CONFIGURE_TASK_STACK_ALLOCATOR
+.. index:: task stack allocator
-.. _CONFIGURE_TASK_STACK_ALLOCATOR_INIT:
+.. _CONFIGURE_TASK_STACK_ALLOCATOR:
-CONFIGURE_TASK_STACK_ALLOCATOR_INIT
------------------------------------
+CONFIGURE_TASK_STACK_ALLOCATOR
+------------------------------
CONSTANT:
- ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT``
+ ``CONFIGURE_TASK_STACK_ALLOCATOR``
DATA TYPE:
Function pointer.
RANGE:
- Undefined, NULL or valid function pointer.
+ Undefined or valid function pointer.
DEFAULT VALUE:
- The default value is NULL, which indicates that task stacks will be
- allocated from the RTEMS Workspace.
+ The default value is ``_Workspace_Allocate``, which indicates that task
+ stacks will be allocated from the RTEMS Workspace.
DESCRIPTION:
- ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT`` configures the initialization
- method for an application or BSP specific task stack allocation
- implementation.
+ ``CONFIGURE_TASK_STACK_ALLOCATOR`` may point to a user provided routine to
+ allocate task stacks.
NOTES:
A correctly configured system must configure the following to be consistent:
@@ -1970,30 +1967,30 @@ NOTES:
- ``CONFIGURE_TASK_STACK_DEALLOCATOR``
-.. index:: CONFIGURE_TASK_STACK_ALLOCATOR
-.. index:: task stack allocator
+.. index:: CONFIGURE_TASK_STACK_ALLOCATOR_INIT
-.. _CONFIGURE_TASK_STACK_ALLOCATOR:
+.. _CONFIGURE_TASK_STACK_ALLOCATOR_INIT:
-CONFIGURE_TASK_STACK_ALLOCATOR
-------------------------------
+CONFIGURE_TASK_STACK_ALLOCATOR_INIT
+-----------------------------------
CONSTANT:
- ``CONFIGURE_TASK_STACK_ALLOCATOR``
+ ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT``
DATA TYPE:
Function pointer.
RANGE:
- Undefined or valid function pointer.
+ Undefined, NULL or valid function pointer.
DEFAULT VALUE:
- The default value is ``_Workspace_Allocate``, which indicates that task
- stacks will be allocated from the RTEMS Workspace.
+ The default value is NULL, which indicates that task stacks will be
+ allocated from the RTEMS Workspace.
DESCRIPTION:
- ``CONFIGURE_TASK_STACK_ALLOCATOR`` may point to a user provided routine to
- allocate task stacks.
+ ``CONFIGURE_TASK_STACK_ALLOCATOR_INIT`` configures the initialization
+ method for an application or BSP specific task stack allocation
+ implementation.
NOTES:
A correctly configured system must configure the following to be consistent:
@@ -2046,44 +2043,6 @@ amount of memory reserved for message queue message buffers. See
:ref:`CONFIGURE_MAXIMUM_MESSAGE_QUEUES` and
:ref:`CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES`.
-.. index:: CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE
-.. index:: memory for a single message queue's buffers
-
-.. _CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE:
-
-CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE
------------------------------------
-
-CONSTANT:
- ``CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE(max_messages, size_per)``
-
-DATA TYPE:
- Unsigned integer (``size_t``).
-
-RANGE:
- Positive.
-
-DEFAULT VALUE:
- The default value is None.
-
-DESCRIPTION:
- This is a helper macro which is used to assist in computing the total
- amount of memory required for message buffers. Each message queue will
- have its own configuration with maximum message size and maximum number of
- pending messages.
-
- The interface for this macro is as follows:
-
- .. code-block:: c
-
- CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE(max_messages, size_per)
-
- Where ``max_messages`` is the maximum number of pending messages and
- ``size_per`` is the size in bytes of the user message.
-
-NOTES:
- This macro is only used in support of :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
-
.. index:: CONFIGURE_MESSAGE_BUFFER_MEMORY
.. index:: configure message queue buffer memory
@@ -2128,6 +2087,44 @@ NOTES:
500, sizeof(other_message_type) \
)
+.. index:: CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE
+.. index:: memory for a single message queue's buffers
+
+.. _CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE:
+
+CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE
+-----------------------------------
+
+CONSTANT:
+ ``CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE(max_messages, size_per)``
+
+DATA TYPE:
+ Unsigned integer (``size_t``).
+
+RANGE:
+ Positive.
+
+DEFAULT VALUE:
+ The default value is None.
+
+DESCRIPTION:
+ This is a helper macro which is used to assist in computing the total
+ amount of memory required for message buffers. Each message queue will
+ have its own configuration with maximum message size and maximum number of
+ pending messages.
+
+ The interface for this macro is as follows:
+
+ .. code-block:: c
+
+ CONFIGURE_MESSAGE_BUFFERS_FOR_QUEUE(max_messages, size_per)
+
+ Where ``max_messages`` is the maximum number of pending messages and
+ ``size_per`` is the size in bytes of the user message.
+
+NOTES:
+ This macro is only used in support of :ref:`CONFIGURE_MESSAGE_BUFFER_MEMORY`.
+
Filesystem Configuration
========================
@@ -2172,67 +2169,6 @@ configuration options:
* :ref:`CONFIGURE_IMFS_ENABLE_MKFIFO`
-.. index:: CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
-
-.. _CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM:
-
-CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
---------------------------------------
-
-CONSTANT:
- ``CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM``
-
-DATA TYPE:
- Boolean feature macro.
-
-RANGE:
- Defined or undefined.
-
-DEFAULT VALUE:
- This is not defined by default. If no other root file system configuration
- parameters are specified, the IMFS will be used as the root file system.
-
-DESCRIPTION:
- This configuration parameter is defined if the application wishes to use
- the device-only filesytem as the root file system.
-
-NOTES:
- The device-only filesystem supports only device nodes and is smaller in
- executable code size than the full IMFS and miniIMFS.
-
- The devFS is comparable in functionality to the pseudo-filesystem name
- space provided before RTEMS release 4.5.0.
-
-.. index:: CONFIGURE_MAXIMUM_DEVICES
-
-.. _CONFIGURE_MAXIMUM_DEVICES:
-
-CONFIGURE_MAXIMUM_DEVICES
--------------------------
-
-CONSTANT:
- ``CONFIGURE_MAXIMUM_DEVICES``
-
-DATA TYPE:
- Unsigned integer (``uint32_t``).
-
-RANGE:
- Positive.
-
-DEFAULT VALUE:
- If ``BSP_MAXIMUM_DEVICES`` is defined, then the default value is
- ``BSP_MAXIMUM_DEVICES``, otherwise the default value is 4.
-
-DESCRIPTION:
- ``CONFIGURE_MAXIMUM_DEVICES`` is defined to the number of individual
- devices that may be registered in the device file system (devFS).
-
-NOTES:
- This option is specific to the device file system (devFS) and should not be
- confused with the ``CONFIGURE_MAXIMUM_DRIVERS`` option. This parameter
- only impacts the devFS and thus is only used by ``<rtems/confdefs.h>`` when
- ``CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM`` is specified.
-
.. index:: CONFIGURE_APPLICATION_DISABLE_FILESYSTEM
.. _CONFIGURE_APPLICATION_DISABLE_FILESYSTEM:
@@ -2261,15 +2197,15 @@ DESCRIPTION:
NOTES:
None.
-.. index:: CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
+.. index:: CONFIGURE_IMFS_ENABLE_MKFIFO
-.. _CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM:
+.. _CONFIGURE_IMFS_ENABLE_MKFIFO:
-CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
------------------------------------------
+CONFIGURE_IMFS_ENABLE_MKFIFO
+----------------------------
CONSTANT:
- ``CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM``
+ ``CONFIGURE_IMFS_ENABLE_MKFIFO``
DATA TYPE:
Boolean feature macro.
@@ -2281,83 +2217,64 @@ DEFAULT VALUE:
This is not defined by default.
DESCRIPTION:
- In case this configuration option is defined, then the following
- configuration options will be defined as well
+ In case this configuration option is defined, then the support to make FIFOs
+ is enabled in the root IMFS.
- - ``CONFIGURE_IMFS_DISABLE_CHMOD``,
+.. index:: CONFIGURE_IMFS_DISABLE_CHMOD
- - ``CONFIGURE_IMFS_DISABLE_CHOWN``,
+.. _CONFIGURE_IMFS_DISABLE_CHMOD:
- - ``CONFIGURE_IMFS_DISABLE_UTIME``,
+CONFIGURE_IMFS_DISABLE_CHMOD
+----------------------------
- - ``CONFIGURE_IMFS_DISABLE_LINK``,
+CONSTANT:
+ ``CONFIGURE_IMFS_DISABLE_CHMOD``
- - ``CONFIGURE_IMFS_DISABLE_SYMLINK``,
+DATA TYPE:
+ Boolean feature macro.
- - ``CONFIGURE_IMFS_DISABLE_READLINK``,
+RANGE:
+ Defined or undefined.
- - ``CONFIGURE_IMFS_DISABLE_RENAME``, and
+DEFAULT VALUE:
+ This is not defined by default.
- - ``CONFIGURE_IMFS_DISABLE_UNMOUNT``.
+DESCRIPTION:
+ In case this configuration option is defined, then the support to change
+ the mode is disabled in the root IMFS.
-.. index:: CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
+.. index:: CONFIGURE_IMFS_DISABLE_CHOWN
-.. _CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK:
+.. _CONFIGURE_IMFS_DISABLE_CHOWN:
-CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
---------------------------------------
+CONFIGURE_IMFS_DISABLE_CHOWN
+----------------------------
CONSTANT:
- ``CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK``
+ ``CONFIGURE_IMFS_DISABLE_CHOWN``
DATA TYPE:
Boolean feature macro.
RANGE:
- Valid values for this configuration parameter are a power of two (2)
- between 16 and 512 inclusive. In other words, valid values are 16, 32, 64,
- 128, 256,and 512.
+ Defined or undefined.
DEFAULT VALUE:
- The default IMFS block size is 128 bytes.
+ This is not defined by default.
DESCRIPTION:
- This configuration parameter specifies the block size for in-memory files
- managed by the IMFS. The configured block size has two impacts. The first
- is the average amount of unused memory in the last block of each file. For
- example, when the block size is 512, on average one-half of the last block
- of each file will remain unused and the memory is wasted. In contrast, when
- the block size is 16, the average unused memory per file is only 8
- bytes. However, it requires more allocations for the same size file and
- thus more overhead per block for the dynamic memory management.
-
- Second, the block size has an impact on the maximum size file that can be
- stored in the IMFS. With smaller block size, the maximum file size is
- correspondingly smaller. The following shows the maximum file size possible
- based on the configured block size:
-
- - when the block size is 16 bytes, the maximum file size is 1,328 bytes.
-
- - when the block size is 32 bytes, the maximum file size is 18,656 bytes.
-
- - when the block size is 64 bytes, the maximum file size is 279,488 bytes.
-
- - when the block size is 128 bytes, the maximum file size is 4,329,344 bytes.
-
- - when the block size is 256 bytes, the maximum file size is 68,173,568 bytes.
-
- - when the block size is 512 bytes, the maximum file size is 1,082,195,456
- bytes.
+ In case this configuration option is defined, then the support to change
+ the owner is disabled in the root IMFS.
-.. index:: CONFIGURE_IMFS_DISABLE_CHOWN
+.. index:: CONFIGURE_IMFS_DISABLE_LINK
-.. _CONFIGURE_IMFS_DISABLE_CHOWN:
+.. _CONFIGURE_IMFS_DISABLE_LINK:
-CONFIGURE_IMFS_DISABLE_CHOWN
-----------------------------
+CONFIGURE_IMFS_DISABLE_LINK
+---------------------------
CONSTANT:
- ``CONFIGURE_IMFS_DISABLE_CHOWN``
+ ``CONFIGURE_IMFS_DISABLE_LINK``
DATA TYPE:
Boolean feature macro.
@@ -2369,18 +2286,18 @@ DEFAULT VALUE:
This is not defined by default.
DESCRIPTION:
- In case this configuration option is defined, then the support to change
- the owner is disabled in the root IMFS.
+ In case this configuration option is defined, then the support to create
+ hard links is disabled in the root IMFS.
-.. index:: CONFIGURE_IMFS_DISABLE_CHMOD
+.. index:: CONFIGURE_IMFS_DISABLE_MKNOD
-.. _CONFIGURE_IMFS_DISABLE_CHMOD:
+.. _CONFIGURE_IMFS_DISABLE_MKNOD:
-CONFIGURE_IMFS_DISABLE_CHMOD
+CONFIGURE_IMFS_DISABLE_MKNOD
----------------------------
CONSTANT:
- ``CONFIGURE_IMFS_DISABLE_CHMOD``
+ ``CONFIGURE_IMFS_DISABLE_MKNOD``
DATA TYPE:
Boolean feature macro.
@@ -2392,18 +2309,18 @@ DEFAULT VALUE:
This is not defined by default.
DESCRIPTION:
- In case this configuration option is defined, then the support to change
- the mode is disabled in the root IMFS.
+ In case this configuration option is defined, then the support to make
+ directories, devices, regular files and FIFOs is disabled in the root IMFS.
-.. index:: CONFIGURE_IMFS_DISABLE_UTIME
+.. index:: CONFIGURE_IMFS_DISABLE_MKNOD_FILE
-.. _CONFIGURE_IMFS_DISABLE_UTIME:
+.. _CONFIGURE_IMFS_DISABLE_MKNOD_FILE:
-CONFIGURE_IMFS_DISABLE_UTIME
-----------------------------
+CONFIGURE_IMFS_DISABLE_MKNOD_FILE
+---------------------------------
CONSTANT:
- ``CONFIGURE_IMFS_DISABLE_UTIME``
+ ``CONFIGURE_IMFS_DISABLE_MKNOD_FILE``
DATA TYPE:
Boolean feature macro.
@@ -2415,18 +2332,18 @@ DEFAULT VALUE:
This is not defined by default.
DESCRIPTION:
- In case this configuration option is defined, then the support to change
- times is disabled in the root IMFS.
+ In case this configuration option is defined, then the support to make
+ regular files is disabled in the root IMFS.
-.. index:: CONFIGURE_IMFS_DISABLE_LINK
+.. index:: CONFIGURE_IMFS_DISABLE_MOUNT
-.. _CONFIGURE_IMFS_DISABLE_LINK:
+.. _CONFIGURE_IMFS_DISABLE_MOUNT:
-CONFIGURE_IMFS_DISABLE_LINK
----------------------------
+CONFIGURE_IMFS_DISABLE_MOUNT
+----------------------------
CONSTANT:
- ``CONFIGURE_IMFS_DISABLE_LINK``
+ ``CONFIGURE_IMFS_DISABLE_MOUNT``
DATA TYPE:
Boolean feature macro.
@@ -2438,18 +2355,18 @@ DEFAULT VALUE:
This is not defined by default.
DESCRIPTION:
- In case this configuration option is defined, then the support to create
- hard links is disabled in the root IMFS.
+ In case this configuration option is defined, then the support to mount
+ other file systems is disabled in the root IMFS.
-.. index:: CONFIGURE_IMFS_DISABLE_SYMLINK
+.. index:: CONFIGURE_IMFS_DISABLE_READDIR
-.. _CONFIGURE_IMFS_DISABLE_SYMLINK:
+.. _CONFIGURE_IMFS_DISABLE_READDIR:
-CONFIGURE_IMFS_DISABLE_SYMLINK
+CONFIGURE_IMFS_DISABLE_READDIR
------------------------------
CONSTANT:
- ``CONFIGURE_IMFS_DISABLE_SYMLINK``
+ ``CONFIGURE_IMFS_DISABLE_READDIR``
DATA TYPE:
Boolean feature macro.
@@ -2461,8 +2378,9 @@ DEFAULT VALUE:
This is not defined by default.
DESCRIPTION:
- In case this configuration option is defined, then the support to create
- symbolic links is disabled in the root IMFS.
+ In case this configuration option is defined, then the support to read a
+ directory is disabled in the root IMFS. It is still possible to open nodes
+ in a directory.
.. index:: CONFIGURE_IMFS_DISABLE_READLINK
@@ -2510,15 +2428,15 @@ DESCRIPTION:
In case this configuration option is defined, then the support to rename
nodes is disabled in the root IMFS.
-.. index:: CONFIGURE_IMFS_DISABLE_READDIR
+.. index:: CONFIGURE_IMFS_DISABLE_RMNOD
-.. _CONFIGURE_IMFS_DISABLE_READDIR:
+.. _CONFIGURE_IMFS_DISABLE_RMNOD:
-CONFIGURE_IMFS_DISABLE_READDIR
-------------------------------
+CONFIGURE_IMFS_DISABLE_RMNOD
+----------------------------
CONSTANT:
- ``CONFIGURE_IMFS_DISABLE_READDIR``
+ ``CONFIGURE_IMFS_DISABLE_RMNOD``
DATA TYPE:
Boolean feature macro.
@@ -2530,19 +2448,18 @@ DEFAULT VALUE:
This is not defined by default.
DESCRIPTION:
- In case this configuration option is defined, then the support to read a
- directory is disabled in the root IMFS. It is still possible to open nodes
- in a directory.
+ In case this configuration option is defined, then the support to remove
+ nodes is disabled in the root IMFS.
-.. index:: CONFIGURE_IMFS_DISABLE_MOUNT
+.. index:: CONFIGURE_IMFS_DISABLE_SYMLINK
-.. _CONFIGURE_IMFS_DISABLE_MOUNT:
+.. _CONFIGURE_IMFS_DISABLE_SYMLINK:
-CONFIGURE_IMFS_DISABLE_MOUNT
-----------------------------
+CONFIGURE_IMFS_DISABLE_SYMLINK
+------------------------------
CONSTANT:
- ``CONFIGURE_IMFS_DISABLE_MOUNT``
+ ``CONFIGURE_IMFS_DISABLE_SYMLINK``
DATA TYPE:
Boolean feature macro.
@@ -2554,8 +2471,8 @@ DEFAULT VALUE:
This is not defined by default.
DESCRIPTION:
- In case this configuration option is defined, then the support to mount
- other file systems is disabled in the root IMFS.
+ In case this configuration option is defined, then the support to create
+ symbolic links is disabled in the root IMFS.
.. index:: CONFIGURE_IMFS_DISABLE_UNMOUNT
@@ -2580,15 +2497,15 @@ DESCRIPTION:
In case this configuration option is defined, then the support to unmount
file systems is disabled in the root IMFS.
-.. index:: CONFIGURE_IMFS_DISABLE_MKNOD
+.. index:: CONFIGURE_IMFS_DISABLE_UTIME
-.. _CONFIGURE_IMFS_DISABLE_MKNOD:
+.. _CONFIGURE_IMFS_DISABLE_UTIME:
-CONFIGURE_IMFS_DISABLE_MKNOD
+CONFIGURE_IMFS_DISABLE_UTIME
----------------------------
CONSTANT:
- ``CONFIGURE_IMFS_DISABLE_MKNOD``
+ ``CONFIGURE_IMFS_DISABLE_UTIME``
DATA TYPE:
Boolean feature macro.
@@ -2600,41 +2517,97 @@ DEFAULT VALUE:
This is not defined by default.
DESCRIPTION:
- In case this configuration option is defined, then the support to make
- directories, devices, regular files and FIFOs is disabled in the root IMFS.
+ In case this configuration option is defined, then the support to change
+ times is disabled in the root IMFS.
-.. index:: CONFIGURE_IMFS_DISABLE_MKNOD_FILE
+.. index:: CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
-.. _CONFIGURE_IMFS_DISABLE_MKNOD_FILE:
+.. _CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK:
-CONFIGURE_IMFS_DISABLE_MKNOD_FILE
----------------------------------
+CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK
+--------------------------------------
CONSTANT:
- ``CONFIGURE_IMFS_DISABLE_MKNOD_FILE``
+ ``CONFIGURE_IMFS_MEMFILE_BYTES_PER_BLOCK``
DATA TYPE:
Boolean feature macro.
RANGE:
- Defined or undefined.
+ Valid values for this configuration parameter are a power of two (2)
+ between 16 and 512 inclusive. In other words, valid values are 16, 32, 64,
+ 128, 256,and 512.
DEFAULT VALUE:
- This is not defined by default.
+ The default IMFS block size is 128 bytes.
DESCRIPTION:
- In case this configuration option is defined, then the support to make
- regular files is disabled in the root IMFS.
+ This configuration parameter specifies the block size for in-memory files
+ managed by the IMFS. The configured block size has two impacts. The first
+ is the average amount of unused memory in the last block of each file. For
+ example, when the block size is 512, on average one-half of the last block
+ of each file will remain unused and the memory is wasted. In contrast, when
+ the block size is 16, the average unused memory per file is only 8
+ bytes. However, it requires more allocations for the same size file and
+ thus more overhead per block for the dynamic memory management.
-.. index:: CONFIGURE_IMFS_DISABLE_RMNOD
+ Second, the block size has an impact on the maximum size file that can be
+ stored in the IMFS. With smaller block size, the maximum file size is
+ correspondingly smaller. The following shows the maximum file size possible
+ based on the configured block size:
-.. _CONFIGURE_IMFS_DISABLE_RMNOD:
+ - when the block size is 16 bytes, the maximum file size is 1,328 bytes.
-CONFIGURE_IMFS_DISABLE_RMNOD
-----------------------------
+ - when the block size is 32 bytes, the maximum file size is 18,656 bytes.
+
+ - when the block size is 64 bytes, the maximum file size is 279,488 bytes.
+
+ - when the block size is 128 bytes, the maximum file size is 4,329,344 bytes.
+
+ - when the block size is 256 bytes, the maximum file size is 68,173,568 bytes.
+
+ - when the block size is 512 bytes, the maximum file size is 1,082,195,456
+ bytes.
+
+.. index:: CONFIGURE_MAXIMUM_DEVICES
+
+.. _CONFIGURE_MAXIMUM_DEVICES:
+
+CONFIGURE_MAXIMUM_DEVICES
+-------------------------
CONSTANT:
- ``CONFIGURE_IMFS_DISABLE_RMNOD``
+ ``CONFIGURE_MAXIMUM_DEVICES``
+
+DATA TYPE:
+ Unsigned integer (``uint32_t``).
+
+RANGE:
+ Positive.
+
+DEFAULT VALUE:
+ If ``BSP_MAXIMUM_DEVICES`` is defined, then the default value is
+ ``BSP_MAXIMUM_DEVICES``, otherwise the default value is 4.
+
+DESCRIPTION:
+ ``CONFIGURE_MAXIMUM_DEVICES`` is defined to the number of individual
+ devices that may be registered in the device file system (devFS).
+
+NOTES:
+ This option is specific to the device file system (devFS) and should not be
+ confused with the ``CONFIGURE_MAXIMUM_DRIVERS`` option. This parameter
+ only impacts the devFS and thus is only used by ``<rtems/confdefs.h>`` when
+ ``CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM`` is specified.
+
+.. index:: CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
+
+.. _CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM:
+
+CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM
+--------------------------------------
+
+CONSTANT:
+ ``CONFIGURE_USE_DEVFS_AS_BASE_FILESYSTEM``
DATA TYPE:
Boolean feature macro.
@@ -2643,21 +2616,29 @@ RANGE:
Defined or undefined.
DEFAULT VALUE:
- This is not defined by default.
+ This is not defined by default. If no other root file system configuration
+ parameters are specified, the IMFS will be used as the root file system.
DESCRIPTION:
- In case this configuration option is defined, then the support to remove
- nodes is disabled in the root IMFS.
+ This configuration parameter is defined if the application wishes to use
+ the device-only filesytem as the root file system.
-.. index:: CONFIGURE_IMFS_ENABLE_MKFIFO
+NOTES:
+ The device-only filesystem supports only device nodes and is smaller in
+ executable code size than the full IMFS and miniIMFS.
-.. _CONFIGURE_IMFS_ENABLE_MKFIFO:
+ The devFS is comparable in functionality to the pseudo-filesystem name
+ space provided before RTEMS release 4.5.0.
-CONFIGURE_IMFS_ENABLE_MKFIFO
-----------------------------
+.. index:: CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
+
+.. _CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM:
+
+CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM
+-----------------------------------------
CONSTANT:
- ``CONFIGURE_IMFS_ENABLE_MKFIFO``
+ ``CONFIGURE_USE_MINIIMFS_AS_BASE_FILESYSTEM``
DATA TYPE:
Boolean feature macro.
@@ -2669,8 +2650,24 @@ DEFAULT VALUE:
This is not defined by default.
DESCRIPTION:
- In case this configuration option is defined, then the support to make FIFOs
- is enabled in the root IMFS.
+ In case this configuration option is defined, then the following
+ configuration options will be defined as well
+
+ - ``CONFIGURE_IMFS_DISABLE_CHMOD``,
+
+ - ``CONFIGURE_IMFS_DISABLE_CHOWN``,
+
+ - ``CONFIGURE_IMFS_DISABLE_UTIME``,
+
+ - ``CONFIGURE_IMFS_DISABLE_LINK``,
+
+ - ``CONFIGURE_IMFS_DISABLE_SYMLINK``,
+
+ - ``CONFIGURE_IMFS_DISABLE_READLINK``,
+
+ - ``CONFIGURE_IMFS_DISABLE_RENAME``, and
+
+ - ``CONFIGURE_IMFS_DISABLE_UNMOUNT``.
Block Device Cache Configuration
================================
@@ -2730,65 +2727,65 @@ DESCRIPTION:
NOTES:
None.
-.. index:: CONFIGURE_BDBUF_BUFFER_MIN_SIZE
+.. index:: CONFIGURE_BDBUF_BUFFER_MAX_SIZE
-.. _CONFIGURE_BDBUF_BUFFER_MIN_SIZE:
+.. _CONFIGURE_BDBUF_BUFFER_MAX_SIZE:
-CONFIGURE_BDBUF_BUFFER_MIN_SIZE
+CONFIGURE_BDBUF_BUFFER_MAX_SIZE
-------------------------------
CONSTANT:
- ``CONFIGURE_BDBUF_BUFFER_MIN_SIZE``
+ ``CONFIGURE_BDBUF_BUFFER_MAX_SIZE``
DATA TYPE:
Unsigned integer (``uint32_t``).
RANGE:
- Positive.
+ It must be positive and an integral multiple of the buffer minimum size.
DEFAULT VALUE:
- The default value is 512 bytes.
+ The default value is 4096 bytes.
DESCRIPTION:
- Defines the minimum size of a buffer in bytes.
+ Defines the maximum size of a buffer in bytes.
NOTES:
None.
-.. index:: CONFIGURE_BDBUF_BUFFER_MAX_SIZE
+.. index:: CONFIGURE_BDBUF_BUFFER_MIN_SIZE
-.. _CONFIGURE_BDBUF_BUFFER_MAX_SIZE:
+.. _CONFIGURE_BDBUF_BUFFER_MIN_SIZE:
-CONFIGURE_BDBUF_BUFFER_MAX_SIZE
+CONFIGURE_BDBUF_BUFFER_MIN_SIZE
-------------------------------
CONSTANT:
- ``CONFIGURE_BDBUF_BUFFER_MAX_SIZE``
+ ``CONFIGURE_BDBUF_BUFFER_MIN_SIZE``
DATA TYPE:
Unsigned integer (``uint32_t``).
RANGE:
- It must be positive and an integral multiple of the buffer minimum size.
+ Positive.
DEFAULT VALUE:
- The default value is 4096 bytes.
+ The default value is 512 bytes.
DESCRIPTION:
- Defines the maximum size of a buffer in bytes.
+ Defines the minimum size of a buffer in bytes.
NOTES:
None.
-.. index:: CONFIGURE_SWAPOUT_SWAP_PERIOD
+.. index:: CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS
-.. _CONFIGURE_SWAPOUT_SWAP_PERIOD:
+.. _CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS:
-CONFIGURE_SWAPOUT_SWAP_PERIOD
------------------------------
+CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS
+-------------------------------------
CONSTANT:
- ``CONFIGURE_SWAPOUT_SWAP_PERIOD``
+ ``CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS``
DATA TYPE:
Unsigned integer (``uint32_t``).
@@ -2797,23 +2794,25 @@ RANGE:
Positive.
DEFAULT VALUE:
- The default value is 250 milliseconds.
+ The default value is 0.
DESCRIPTION:
- Defines the swapout task swap period in milliseconds.
+ Defines the maximum blocks per read-ahead request.
NOTES:
- None.
+ A value of 0 disables the read-ahead task (default). The read-ahead task
+ will issue speculative read transfers if a sequential access pattern is
+ detected. This can improve the performance on some systems.
-.. index:: CONFIGURE_SWAPOUT_BLOCK_HOLD
+.. index:: CONFIGURE_BDBUF_MAX_WRITE_BLOCKS
-.. _CONFIGURE_SWAPOUT_BLOCK_HOLD:
+.. _CONFIGURE_BDBUF_MAX_WRITE_BLOCKS:
-CONFIGURE_SWAPOUT_BLOCK_HOLD
-----------------------------
+CONFIGURE_BDBUF_MAX_WRITE_BLOCKS
+--------------------------------
CONSTANT:
- ``CONFIGURE_SWAPOUT_BLOCK_HOLD``
+ ``CONFIGURE_BDBUF_MAX_WRITE_BLOCKS``
DATA TYPE:
Unsigned integer (``uint32_t``).
@@ -2822,23 +2821,23 @@ RANGE:
Positive.
DEFAULT VALUE:
- The default value is 1000 milliseconds.
+ The default value is 16.
DESCRIPTION:
- Defines the swapout task maximum block hold time in milliseconds.
+ Defines the maximum blocks per write request.
NOTES:
None.
-.. index:: CONFIGURE_SWAPOUT_TASK_PRIORITY
+.. index:: CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
-.. _CONFIGURE_SWAPOUT_TASK_PRIORITY:
+.. _CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY:
-CONFIGURE_SWAPOUT_TASK_PRIORITY
--------------------------------
+CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
+----------------------------------------
CONSTANT:
- ``CONFIGURE_SWAPOUT_TASK_PRIORITY``
+ ``CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY``
DATA TYPE:
Task priority (``rtems_task_priority``).
@@ -2850,47 +2849,45 @@ DEFAULT VALUE:
The default value is 15.
DESCRIPTION:
- Defines the swapout task priority.
+ Defines the read-ahead task priority.
NOTES:
None.
-.. index:: CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS
+.. index:: CONFIGURE_BDBUF_TASK_STACK_SIZE
-.. _CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS:
+.. _CONFIGURE_BDBUF_TASK_STACK_SIZE:
-CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS
--------------------------------------
+CONFIGURE_BDBUF_TASK_STACK_SIZE
+-------------------------------
CONSTANT:
- ``CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS``
+ ``CONFIGURE_BDBUF_TASK_STACK_SIZE``
DATA TYPE:
- Unsigned integer (``uint32_t``).
+ Unsigned integer (``size_t``).
RANGE:
- Positive.
+ Zero or positive.
DEFAULT VALUE:
- The default value is 0.
+ The default value is RTEMS_MINIMUM_STACK_SIZE.
DESCRIPTION:
- Defines the maximum blocks per read-ahead request.
+ Defines the task stack size of the Block Device Cache tasks in bytes.
NOTES:
- A value of 0 disables the read-ahead task (default). The read-ahead task
- will issue speculative read transfers if a sequential access pattern is
- detected. This can improve the performance on some systems.
+ None.
-.. index:: CONFIGURE_BDBUF_MAX_WRITE_BLOCKS
+.. index:: CONFIGURE_SWAPOUT_BLOCK_HOLD
-.. _CONFIGURE_BDBUF_MAX_WRITE_BLOCKS:
+.. _CONFIGURE_SWAPOUT_BLOCK_HOLD:
-CONFIGURE_BDBUF_MAX_WRITE_BLOCKS
---------------------------------
+CONFIGURE_SWAPOUT_BLOCK_HOLD
+----------------------------
CONSTANT:
- ``CONFIGURE_BDBUF_MAX_WRITE_BLOCKS``
+ ``CONFIGURE_SWAPOUT_BLOCK_HOLD``
DATA TYPE:
Unsigned integer (``uint32_t``).
@@ -2899,48 +2896,48 @@ RANGE:
Positive.
DEFAULT VALUE:
- The default value is 16.
+ The default value is 1000 milliseconds.
DESCRIPTION:
- Defines the maximum blocks per write request.
+ Defines the swapout task maximum block hold time in milliseconds.
NOTES:
None.
-.. index:: CONFIGURE_BDBUF_TASK_STACK_SIZE
+.. index:: CONFIGURE_SWAPOUT_SWAP_PERIOD
-.. _CONFIGURE_BDBUF_TASK_STACK_SIZE:
+.. _CONFIGURE_SWAPOUT_SWAP_PERIOD:
-CONFIGURE_BDBUF_TASK_STACK_SIZE
--------------------------------
+CONFIGURE_SWAPOUT_SWAP_PERIOD
+-----------------------------
CONSTANT:
- ``CONFIGURE_BDBUF_TASK_STACK_SIZE``
+ ``CONFIGURE_SWAPOUT_SWAP_PERIOD``
DATA TYPE:
- Unsigned integer (``size_t``).
+ Unsigned integer (``uint32_t``).
RANGE:
- Zero or positive.
+ Positive.
DEFAULT VALUE:
- The default value is RTEMS_MINIMUM_STACK_SIZE.
+ The default value is 250 milliseconds.
DESCRIPTION:
- Defines the task stack size of the Block Device Cache tasks in bytes.
+ Defines the swapout task swap period in milliseconds.
NOTES:
None.
-.. index:: CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
+.. index:: CONFIGURE_SWAPOUT_TASK_PRIORITY
-.. _CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY:
+.. _CONFIGURE_SWAPOUT_TASK_PRIORITY:
-CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY
-----------------------------------------
+CONFIGURE_SWAPOUT_TASK_PRIORITY
+-------------------------------
CONSTANT:
- ``CONFIGURE_BDBUF_READ_AHEAD_TASK_PRIORITY``
+ ``CONFIGURE_SWAPOUT_TASK_PRIORITY``
DATA TYPE:
Task priority (``rtems_task_priority``).
@@ -2952,57 +2949,57 @@ DEFAULT VALUE:
The default value is 15.
DESCRIPTION:
- Defines the read-ahead task priority.
+ Defines the swapout task priority.
NOTES:
None.
-.. index:: CONFIGURE_SWAPOUT_WORKER_TASKS
+.. index:: CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY
-.. _CONFIGURE_SWAPOUT_WORKER_TASKS:
+.. _CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY:
-CONFIGURE_SWAPOUT_WORKER_TASKS
-------------------------------
+CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY
+--------------------------------------
CONSTANT:
- ``CONFIGURE_SWAPOUT_WORKER_TASKS``
+ ``CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY``
DATA TYPE:
- Unsigned integer (``size_t``).
+ Task priority (``rtems_task_priority``).
RANGE:
- Zero or positive.
+ Valid task priority.
DEFAULT VALUE:
- The default value is 0.
+ The default value is 15.
DESCRIPTION:
- Defines the swapout worker task count.
+ Defines the swapout worker task priority.
NOTES:
None.
-.. index:: CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY
+.. index:: CONFIGURE_SWAPOUT_WORKER_TASKS
-.. _CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY:
+.. _CONFIGURE_SWAPOUT_WORKER_TASKS:
-CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY
---------------------------------------
+CONFIGURE_SWAPOUT_WORKER_TASKS
+------------------------------
CONSTANT:
- ``CONFIGURE_SWAPOUT_WORKER_TASK_PRIORITY``
+ ``CONFIGURE_SWAPOUT_WORKER_TASKS``
DATA TYPE:
- Task priority (``rtems_task_priority``).
+ Unsigned integer (``size_t``).
RANGE:
- Valid task priority.
+ Zero or positive.
DEFAULT VALUE:
- The default value is 15.
+ The default value is 0.
DESCRIPTION:
- Defines the swapout worker task priority.
+ Defines the swapout worker task count.
NOTES:
None.
@@ -3284,32 +3281,6 @@ DESCRIPTION:
NOTES:
None.
-.. index:: CONFIGURE_IDLE_TASK_STACK_SIZE
-
-.. _CONFIGURE_IDLE_TASK_STACK_SIZE:
-
-CONFIGURE_IDLE_TASK_STACK_SIZE
-------------------------------
-
-CONSTANT:
- ``CONFIGURE_IDLE_TASK_STACK_SIZE``
-
-DATA TYPE:
- Unsigned integer (``size_t``).
-
-RANGE:
- Undefined or positive.
-
-DEFAULT VALUE:
- The default value is RTEMS_MINIMUM_STACK_SIZE.
-
-DESCRIPTION:
- ``CONFIGURE_IDLE_TASK_STACK_SIZE`` is set to the desired stack size for the
- IDLE task.
-
-NOTES:
- None.
-
.. index:: CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION
.. _CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION:
@@ -3344,6 +3315,32 @@ NOTES:
The IDLE task must run at the lowest priority of all tasks in the system.
+.. index:: CONFIGURE_IDLE_TASK_STACK_SIZE
+
+.. _CONFIGURE_IDLE_TASK_STACK_SIZE:
+
+CONFIGURE_IDLE_TASK_STACK_SIZE
+------------------------------
+
+CONSTANT:
+ ``CONFIGURE_IDLE_TASK_STACK_SIZE``
+
+DATA TYPE:
+ Unsigned integer (``size_t``).
+
+RANGE:
+ Undefined or positive.
+
+DEFAULT VALUE:
+ The default value is RTEMS_MINIMUM_STACK_SIZE.
+
+DESCRIPTION:
+ ``CONFIGURE_IDLE_TASK_STACK_SIZE`` is set to the desired stack size for the
+ IDLE task.
+
+NOTES:
+ None.
+
General Scheduler Configuration
===============================
@@ -3955,38 +3952,95 @@ suitable for simple applications with no custom device drivers.
Note that network device drivers are not configured in the Device Driver Table.
-.. index:: CONFIGURE_MAXIMUM_DRIVERS
+.. index:: CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
-.. _CONFIGURE_MAXIMUM_DRIVERS:
+.. _CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER:
-CONFIGURE_MAXIMUM_DRIVERS
--------------------------
+CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+------------------------------------------------
CONSTANT:
+ ``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER``
- ``CONFIGURE_MAXIMUM_DRIVERS``
+DATA TYPE:
+ Boolean feature macro.
+
+RANGE:
+ Defined or undefined.
+
+DEFAULT VALUE:
+ This is not defined by default.
+
+DESCRIPTION:
+ ``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`` is defined when the
+ application does *NOT* want the Clock Device Driver and is *NOT* using the
+ Timer Driver. The inclusion or exclusion of the Clock Driver must be
+ explicit in user applications.
+
+NOTES:
+ This configuration parameter is intended to prevent the common user error
+ of using the Hello World example as the baseline for an application and
+ leaving out a clock tick source.
+
+.. index:: CONFIGURE_APPLICATION_EXTRA_DRIVERS
+
+.. _CONFIGURE_APPLICATION_EXTRA_DRIVERS:
+
+CONFIGURE_APPLICATION_EXTRA_DRIVERS
+-----------------------------------
+
+CONSTANT:
+ ``CONFIGURE_APPLICATION_EXTRA_DRIVERS``
DATA TYPE:
- Unsigned integer (``uint32_t``).
+ device driver entry structures
RANGE:
- Zero or positive.
+ Undefined or set of device driver entry structures
DEFAULT VALUE:
- This is computed by default, and is set to the number of device drivers
- configured using the ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER``
- configuration parameters.
+ This is not defined by default.
DESCRIPTION:
- ``CONFIGURE_MAXIMUM_DRIVERS`` is defined as the number of device drivers
- per node.
+ ``CONFIGURE_APPLICATION_EXTRA_DRIVERS`` is defined if the application has
+ device drivers it needs to include in the Device Driver Table. This should
+ be defined to the set of device driver entries that will be placed in the
+ table at the *END* of the Device Driver Table.
NOTES:
- If the application will dynamically install device drivers, then this
- configuration parameter must be larger than the number of statically
- configured device drivers. Drivers configured using the
- ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER`` configuration parameters are
- statically installed.
+ None.
+
+.. index:: CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+
+.. _CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER:
+
+CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+----------------------------------------
+
+CONSTANT:
+ ``CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER``
+
+DATA TYPE:
+ Boolean feature macro.
+
+RANGE:
+ Defined or undefined.
+
+DEFAULT VALUE:
+ This is not defined by default.
+
+DESCRIPTION:
+ ``CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`` is defined if the application
+ wishes to include the Clock Device Driver.
+
+NOTES:
+ This device driver is responsible for providing a regular interrupt which
+ invokes a clock tick directive.
+
+ If neither the Clock Driver not Benchmark Timer is enabled and the
+ configuration parameter
+ ``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`` is not defined, then a
+ compile time error will occur.
.. index:: CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
@@ -4029,6 +4083,92 @@ NOTES:
configuration options are mutually exclusive.
+.. index:: CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER
+
+.. _CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER:
+
+CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER
+-----------------------------------------------
+
+CONSTANT:
+ ``CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER``
+
+DATA TYPE:
+ Boolean feature macro.
+
+RANGE:
+ Defined or undefined.
+
+DEFAULT VALUE:
+ This is not defined by default.
+
+DESCRIPTION:
+ ``CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER`` is defined if the
+ application wishes to include the BSP's Frame Buffer Device Driver.
+
+NOTES:
+ Most BSPs do not include support for a Frame Buffer Device Driver. This is
+ because many boards do not include the required hardware.
+
+ If this 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
+
+.. _CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER:
+
+CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
+---------------------------------------
+
+CONSTANT:
+ ``CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER``
+
+DATA TYPE:
+ Boolean feature macro.
+
+RANGE:
+ Defined or undefined.
+
+DEFAULT VALUE:
+ This is not defined by default.
+
+DESCRIPTION:
+ This configuration variable is specified to enable ``/dev/null`` device driver.
+
+NOTES:
+ This device driver is supported by all BSPs.
+
+.. index:: CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
+
+.. _CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER:
+
+CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
+--------------------------------------
+
+CONSTANT:
+ ``CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER``
+
+DATA TYPE:
+ Boolean feature macro.
+
+RANGE:
+ Defined or undefined.
+
+DEFAULT VALUE:
+ This is not defined by default.
+
+DESCRIPTION:
+ ``CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER`` is defined if the application
+ wishes to include the Real-Time Clock Driver.
+
+NOTES:
+ Most BSPs do not include support for a real-time clock. This is because
+ many boards do not include the required hardware.
+
+ If this 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_SIMPLE_CONSOLE_DRIVER
.. _CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER:
@@ -4128,15 +4268,15 @@ NOTES:
configuration options are mutually exclusive.
-.. index:: CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+.. index:: CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
-.. _CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER:
+.. _CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER:
-CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
-----------------------------------------
+CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
+---------------------------------------
CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER``
+ ``CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER``
DATA TYPE:
Boolean feature macro.
@@ -4148,17 +4288,12 @@ DEFAULT VALUE:
This is not defined by default.
DESCRIPTION:
- ``CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER`` is defined if the application
- wishes to include the Clock Device Driver.
+ ``CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER`` is defined if the application
+ wishes to include the Stub Device Driver.
NOTES:
- This device driver is responsible for providing a regular interrupt which
- invokes a clock tick directive.
-
- If neither the Clock Driver not Benchmark Timer is enabled and the
- configuration parameter
- ``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`` is not defined, then a
- compile time error will occur.
+ This device driver simply provides entry points that return successful and
+ is primarily a test fixture. It is supported by all BSPs.
.. index:: CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
@@ -4190,66 +4325,6 @@ NOTES:
``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`` is not defined, then a
compile time error will occur.
-.. index:: CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
-
-.. _CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER:
-
-CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
-------------------------------------------------
-
-CONSTANT:
- ``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER``
-
-DATA TYPE:
- Boolean feature macro.
-
-RANGE:
- Defined or undefined.
-
-DEFAULT VALUE:
- This is not defined by default.
-
-DESCRIPTION:
- ``CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER`` is defined when the
- application does *NOT* want the Clock Device Driver and is *NOT* using the
- Timer Driver. The inclusion or exclusion of the Clock Driver must be
- explicit in user applications.
-
-NOTES:
- This configuration parameter is intended to prevent the common user error
- of using the Hello World example as the baseline for an application and
- leaving out a clock tick source.
-
-.. index:: CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
-
-.. _CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER:
-
-CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER
---------------------------------------
-
-CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER``
-
-DATA TYPE:
- Boolean feature macro.
-
-RANGE:
- Defined or undefined.
-
-DEFAULT VALUE:
- This is not defined by default.
-
-DESCRIPTION:
- ``CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER`` is defined if the application
- wishes to include the Real-Time Clock Driver.
-
-NOTES:
- Most BSPs do not include support for a real-time clock. This is because
- many boards do not include the required hardware.
-
- If this 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_WATCHDOG_DRIVER
.. _CONFIGURE_APPLICATION_NEEDS_WATCHDOG_DRIVER:
@@ -4280,45 +4355,16 @@ NOTES:
If this 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_FRAME_BUFFER_DRIVER
-
-.. _CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER:
-
-CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER
------------------------------------------------
-
-CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER``
-
-DATA TYPE:
- Boolean feature macro.
-
-RANGE:
- Defined or undefined.
-
-DEFAULT VALUE:
- This is not defined by default.
-
-DESCRIPTION:
- ``CONFIGURE_APPLICATION_NEEDS_FRAME_BUFFER_DRIVER`` is defined if the
- application wishes to include the BSP's Frame Buffer Device Driver.
-
-NOTES:
- Most BSPs do not include support for a Frame Buffer Device Driver. This is
- because many boards do not include the required hardware.
-
- If this 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_STUB_DRIVER
+.. index:: CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
+.. index:: /dev/zero
-.. _CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER:
+.. _CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER:
-CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER
+CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
---------------------------------------
CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER``
+ ``CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER``
DATA TYPE:
Boolean feature macro.
@@ -4330,12 +4376,10 @@ DEFAULT VALUE:
This is not defined by default.
DESCRIPTION:
- ``CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER`` is defined if the application
- wishes to include the Stub Device Driver.
+ This configuration variable is specified to enable ``/dev/zero`` device driver.
NOTES:
- This device driver simply provides entry points that return successful and
- is primarily a test fixture. It is supported by all BSPs.
+ This device driver is supported by all BSPs.
.. index:: CONFIGURE_APPLICATION_PREREQUISITE_DRIVERS
@@ -4370,87 +4414,38 @@ NOTES:
with VMEBus. The VMEBus Controller initialization is performed by a device
driver configured via this configuration parameter.
-.. COMMENT: XXX Add example
-
-.. index:: CONFIGURE_APPLICATION_EXTRA_DRIVERS
-
-.. _CONFIGURE_APPLICATION_EXTRA_DRIVERS:
-
-CONFIGURE_APPLICATION_EXTRA_DRIVERS
------------------------------------
-
-CONSTANT:
- ``CONFIGURE_APPLICATION_EXTRA_DRIVERS``
-
-DATA TYPE:
- device driver entry structures
-
-RANGE:
- Undefined or set of device driver entry structures
-
-DEFAULT VALUE:
- This is not defined by default.
-
-DESCRIPTION:
- ``CONFIGURE_APPLICATION_EXTRA_DRIVERS`` is defined if the application has
- device drivers it needs to include in the Device Driver Table. This should
- be defined to the set of device driver entries that will be placed in the
- table at the *END* of the Device Driver Table.
-
-NOTES:
- None.
-
-.. index:: CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
-.. index:: /dev/null
+.. index:: CONFIGURE_MAXIMUM_DRIVERS
-.. _CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER:
+.. _CONFIGURE_MAXIMUM_DRIVERS:
-CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER
----------------------------------------
+CONFIGURE_MAXIMUM_DRIVERS
+-------------------------
CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_NULL_DRIVER``
-
-DATA TYPE:
- Boolean feature macro.
-
-RANGE:
- Defined or undefined.
-
-DEFAULT VALUE:
- This is not defined by default.
-
-DESCRIPTION:
- This configuration variable is specified to enable ``/dev/null`` device driver.
-
-NOTES:
- This device driver is supported by all BSPs.
-
-.. index:: CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
-.. index:: /dev/zero
-
-.. _CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER:
-CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER
----------------------------------------
-
-CONSTANT:
- ``CONFIGURE_APPLICATION_NEEDS_ZERO_DRIVER``
+ ``CONFIGURE_MAXIMUM_DRIVERS``
DATA TYPE:
- Boolean feature macro.
+ Unsigned integer (``uint32_t``).
RANGE:
- Defined or undefined.
+ Zero or positive.
DEFAULT VALUE:
- This is not defined by default.
+ This is computed by default, and is set to the number of device drivers
+ configured using the ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER``
+ configuration parameters.
DESCRIPTION:
- This configuration variable is specified to enable ``/dev/zero`` device driver.
+ ``CONFIGURE_MAXIMUM_DRIVERS`` is defined as the number of device drivers
+ per node.
NOTES:
- This device driver is supported by all BSPs.
+ If the application will dynamically install device drivers, then this
+ configuration parameter must be larger than the number of statically
+ configured device drivers. Drivers configured using the
+ ``CONFIGURE_APPLICATIONS_NEEDS_XXX_DRIVER`` configuration parameters are
+ statically installed.
Multiprocessing Configuration
=============================
@@ -4492,15 +4487,15 @@ NOTES:
This has no impact unless RTEMS was built with the
``--enable-multiprocessing`` build configuration option.
-.. index:: CONFIGURE_MP_NODE_NUMBER
+.. index:: CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
-.. _CONFIGURE_MP_NODE_NUMBER:
+.. _CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS:
-CONFIGURE_MP_NODE_NUMBER
-------------------------
+CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
+-----------------------------------
CONSTANT:
- ``CONFIGURE_MP_NODE_NUMBER``
+ ``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS``
DATA TYPE:
Unsigned integer (``uint32_t``).
@@ -4509,18 +4504,15 @@ RANGE:
Positive.
DEFAULT VALUE:
- The default value is ``NODE_NUMBER``, which is assumed to be set by the
- compilation environment.
+ The default value is 32.
DESCRIPTION:
- ``CONFIGURE_MP_NODE_NUMBER`` is the node number of this node in a
- multiprocessor system.
+ ``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS`` is the maximum number of
+ concurrently active global objects in a multiprocessor system.
NOTES:
- In the RTEMS Multiprocessing Test Suite, the node number is derived from
- the Makefile variable ``NODE_NUMBER``. The same code is compiled with the
- ``NODE_NUMBER`` set to different values. The test programs behave
- differently based upon their node number.
+ This value corresponds to the total number of objects which can be created
+ with the ``RTEMS_GLOBAL`` attribute.
.. index:: CONFIGURE_MP_MAXIMUM_NODES
@@ -4548,33 +4540,6 @@ DESCRIPTION:
NOTES:
None.
-.. index:: CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
-
-.. _CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS:
-
-CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
------------------------------------
-
-CONSTANT:
- ``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS``
-
-DATA TYPE:
- Unsigned integer (``uint32_t``).
-
-RANGE:
- Positive.
-
-DEFAULT VALUE:
- The default value is 32.
-
-DESCRIPTION:
- ``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS`` is the maximum number of
- concurrently active global objects in a multiprocessor system.
-
-NOTES:
- This value corresponds to the total number of objects which can be created
- with the ``RTEMS_GLOBAL`` attribute.
-
.. index:: CONFIGURE_MP_MAXIMUM_PROXIES
.. _CONFIGURE_MP_MAXIMUM_PROXIES:
@@ -4633,6 +4598,36 @@ NOTES:
Multiprocessor System assuming the BSP provides the proper set of
supporting methods.
+.. index:: CONFIGURE_MP_NODE_NUMBER
+
+.. _CONFIGURE_MP_NODE_NUMBER:
+
+CONFIGURE_MP_NODE_NUMBER
+------------------------
+
+CONSTANT:
+ ``CONFIGURE_MP_NODE_NUMBER``
+
+DATA TYPE:
+ Unsigned integer (``uint32_t``).
+
+RANGE:
+ Positive.
+
+DEFAULT VALUE:
+ The default value is ``NODE_NUMBER``, which is assumed to be set by the
+ compilation environment.
+
+DESCRIPTION:
+ ``CONFIGURE_MP_NODE_NUMBER`` is the node number of this node in a
+ multiprocessor system.
+
+NOTES:
+ In the RTEMS Multiprocessing Test Suite, the node number is derived from
+ the Makefile variable ``NODE_NUMBER``. The same code is compiled with the
+ ``NODE_NUMBER`` set to different values. The test programs behave
+ differently based upon their node number.
+
PCI Library Configuration
=========================
@@ -4688,60 +4683,60 @@ Plug & Play is not performed.
Event Recording Configuration
=============================
-.. index:: CONFIGURE_RECORD_PER_PROCESSOR_ITEMS
+.. index:: CONFIGURE_RECORD_EXTENSIONS_ENABLED
-.. _CONFIGURE_RECORD_PER_PROCESSOR_ITEMS:
+.. _CONFIGURE_RECORD_EXTENSIONS_ENABLED:
-CONFIGURE_RECORD_PER_PROCESSOR_ITEMS
-------------------------------------
+CONFIGURE_RECORD_EXTENSIONS_ENABLED
+-----------------------------------
CONSTANT:
- ``CONFIGURE_RECORD_PER_PROCESSOR_ITEMS``
+ ``CONFIGURE_RECORD_EXTENSIONS_ENABLED``
DATA TYPE:
- Unsigned integer (``unsigned int``).
+ Boolean feature macro.
RANGE:
- A power of two greater than or equal to 16.
+ Defined or undefined.
DEFAULT VALUE:
This is not defined by default.
DESCRIPTION:
- If defined, then a record item buffer of the specified item count is
- statically allocated for each configured processor
- (:ref:`CONFIGURE_MAXIMUM_PROCESSORS <CONFIGURE_MAXIMUM_PROCESSORS>`).
+ If defined and :ref:`CONFIGURE_RECORD_PER_PROCESSOR_ITEMS
+ <CONFIGURE_RECORD_PER_PROCESSOR_ITEMS>` is also defined properly, then the
+ record extensions are enabled.
NOTES:
- None.
+ The record extensions capture thread create, start, restart, delete,
+ switch, begin, exitted and terminate events.
-.. index:: CONFIGURE_RECORD_EXTENSIONS_ENABLED
+.. index:: CONFIGURE_RECORD_PER_PROCESSOR_ITEMS
-.. _CONFIGURE_RECORD_EXTENSIONS_ENABLED:
+.. _CONFIGURE_RECORD_PER_PROCESSOR_ITEMS:
-CONFIGURE_RECORD_EXTENSIONS_ENABLED
------------------------------------
+CONFIGURE_RECORD_PER_PROCESSOR_ITEMS
+------------------------------------
CONSTANT:
- ``CONFIGURE_RECORD_EXTENSIONS_ENABLED``
+ ``CONFIGURE_RECORD_PER_PROCESSOR_ITEMS``
DATA TYPE:
- Boolean feature macro.
+ Unsigned integer (``unsigned int``).
RANGE:
- Defined or undefined.
+ A power of two greater than or equal to 16.
DEFAULT VALUE:
This is not defined by default.
DESCRIPTION:
- If defined and :ref:`CONFIGURE_RECORD_PER_PROCESSOR_ITEMS
- <CONFIGURE_RECORD_PER_PROCESSOR_ITEMS>` is also defined properly, then the
- record extensions are enabled.
+ If defined, then a record item buffer of the specified item count is
+ statically allocated for each configured processor
+ (:ref:`CONFIGURE_MAXIMUM_PROCESSORS <CONFIGURE_MAXIMUM_PROCESSORS>`).
NOTES:
- The record extensions capture thread create, start, restart, delete,
- switch, begin, exitted and terminate events.
+ None.
.. _ConfigAda: