diff options
Diffstat (limited to 'c-user')
-rw-r--r-- | c-user/configuring_a_system.rst | 1671 |
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: |