summaryrefslogtreecommitdiffstats
path: root/c-user/config/classic-init-task.rst
diff options
context:
space:
mode:
Diffstat (limited to 'c-user/config/classic-init-task.rst')
-rw-r--r--c-user/config/classic-init-task.rst396
1 files changed, 236 insertions, 160 deletions
diff --git a/c-user/config/classic-init-task.rst b/c-user/config/classic-init-task.rst
index 9c0435b..f65bb8a 100644
--- a/c-user/config/classic-init-task.rst
+++ b/c-user/config/classic-init-task.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
+.. Copyright (C) 2020, 2021 embedded brains GmbH & Co. KG
.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
.. This file is part of the RTEMS quality process and was automatically
@@ -28,6 +28,10 @@ initialization task.
.. Generated from spec:/acfg/if/init-task-arguments
+.. raw:: latex
+
+ \clearpage
+
.. index:: CONFIGURE_INIT_TASK_ARGUMENTS
.. _CONFIGURE_INIT_TASK_ARGUMENTS:
@@ -35,28 +39,34 @@ initialization task.
CONFIGURE_INIT_TASK_ARGUMENTS
-----------------------------
-CONSTANT:
- ``CONFIGURE_INIT_TASK_ARGUMENTS``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_INIT_TASK_ARGUMENTS``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is an integer define.
-OPTION TYPE:
- This configuration option is an integer define.
+.. rubric:: DEFAULT VALUE:
-DEFAULT VALUE:
- The default value is 0.
+The default value is 0.
-VALUE CONSTRAINTS:
- The value of this configuration option shall be convertible to an integer
- of type :c:type:`rtems_task_argument`.
+.. rubric:: DESCRIPTION:
-DESCRIPTION:
- The value of this configuration option defines task argument of the Classic
- API initialization task.
+The value of this configuration option defines task argument of the Classic
+API initialization task.
-NOTES:
- None.
+.. rubric:: CONSTRAINTS:
+
+The value of the configuration option shall be convertible to an integer of
+type :ref:`InterfaceRtemsTaskArgument`.
.. Generated from spec:/acfg/if/init-task-attributes
+.. raw:: latex
+
+ \clearpage
+
.. index:: CONFIGURE_INIT_TASK_ATTRIBUTES
.. _CONFIGURE_INIT_TASK_ATTRIBUTES:
@@ -64,27 +74,33 @@ NOTES:
CONFIGURE_INIT_TASK_ATTRIBUTES
------------------------------
-CONSTANT:
- ``CONFIGURE_INIT_TASK_ATTRIBUTES``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_INIT_TASK_ATTRIBUTES``
-OPTION TYPE:
- This configuration option is an integer define.
+.. rubric:: OPTION TYPE:
-DEFAULT VALUE:
- The default value is :c:macro:`RTEMS_DEFAULT_ATTRIBUTES`.
+This configuration option is an integer define.
-VALUE CONSTRAINTS:
- The value of this configuration option shall be a valid task attribute set.
+.. rubric:: DEFAULT VALUE:
-DESCRIPTION:
- The value of this configuration option defines the task attributes of the
- Classic API initialization task.
+The default value is :c:macro:`RTEMS_DEFAULT_ATTRIBUTES`.
-NOTES:
- None.
+.. rubric:: DESCRIPTION:
+
+The value of this configuration option defines the task attributes of the
+Classic API initialization task.
+
+.. rubric:: CONSTRAINTS:
+
+The value of the configuration option shall be a valid task attribute set.
.. Generated from spec:/acfg/if/init-task-construct-storage-size
+.. raw:: latex
+
+ \clearpage
+
.. index:: CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE
.. _CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE:
@@ -92,60 +108,70 @@ NOTES:
CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE
------------------------------------------
-CONSTANT:
- ``CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is an integer define.
-OPTION TYPE:
- This configuration option is an integer define.
+.. rubric:: DEFAULT VALUE:
-DEFAULT VALUE:
- This configuration option has no default value. If it is not specified, then
- the Classic API initialization task will be created with the stack size
- defined by the :ref:`CONFIGURE_INIT_TASK_STACK_SIZE` configuration option.
+This configuration option has no default value. If it is not specified, then
+the Classic API initialization task will be created with the stack size
+defined by the :ref:`CONFIGURE_INIT_TASK_STACK_SIZE` configuration option.
-VALUE CONSTRAINTS:
- The value of this configuration option shall satisfy all of the following
- constraints:
+.. rubric:: DESCRIPTION:
- * It shall be greater than or equal to
- :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+The value of this configuration option defines the task storage size of the
+Classic API initialization task.
- * It shall be defined using :c:func:`RTEMS_TASK_STORAGE_SIZE`.
+.. rubric:: NOTES:
-DESCRIPTION:
- The value of this configuration option defines the task storage size of the
- Classic API initialization task.
+If this configuration option is specified, then
-NOTES:
- If this configuration option is specified, then
+* a task storage area of the specified size is statically allocated by
+ ``<rtems/confdefs.h>`` for the Classic API initialization task,
- * a task storage area of the specified size is statically allocated by
- ``<rtems/confdefs.h>`` for the Classic API initialization task,
+* the Classic API initialization task is constructed by
+ :ref:`InterfaceRtemsTaskConstruct` instead of using
+ :ref:`InterfaceRtemsTaskCreate`,
- * the Classic API initialization task is constructed by
- :c:func:`rtems_task_construct` instead of using
- :c:func:`rtems_task_create`,
+* the maximum thread-local storage size defined by
+ :ref:`CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE` is used for the Classic API
+ initialization task,
- * the maximum thread-local storage size defined by
- :ref:`CONFIGURE_MAXIMUM_THREAD_LOCAL_STORAGE_SIZE` is used for the Classic API
- initialization task,
+* the Classic API initialization task should be accounted for in
+ :ref:`CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE`, and
- * the Classic API initialization task should be accounted for in
- :ref:`CONFIGURE_MINIMUM_TASKS_WITH_USER_PROVIDED_STORAGE`, and
+* the task storage area used for the Classic API initialization task is not
+ reclaimed by the system if the task is deleted.
- * the task storage area used for the Classic API initialization task is not
- reclaimed by the system if the task is deleted.
+The
- The
+* :ref:`CONFIGURE_INIT_TASK_STACK_SIZE` and
- * :ref:`CONFIGURE_INIT_TASK_STACK_SIZE` and
+* ``CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE``
- * ``CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE``
+configuration options are mutually exclusive.
- configuration options are mutually exclusive.
+.. rubric:: CONSTRAINTS:
+
+The following constraints apply to this configuration option:
+
+* The value of the configuration option shall be greater than or equal to
+ :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+
+* The value of the configuration option shall be defined using
+ :ref:`InterfaceRTEMSTASKSTORAGESIZE`.
.. Generated from spec:/acfg/if/init-task-entrypoint
+.. raw:: latex
+
+ \clearpage
+
.. index:: CONFIGURE_INIT_TASK_ENTRY_POINT
.. _CONFIGURE_INIT_TASK_ENTRY_POINT:
@@ -153,29 +179,39 @@ NOTES:
CONFIGURE_INIT_TASK_ENTRY_POINT
-------------------------------
-CONSTANT:
- ``CONFIGURE_INIT_TASK_ENTRY_POINT``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_INIT_TASK_ENTRY_POINT``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is an initializer define.
-OPTION TYPE:
- This configuration option is an initializer define.
+.. rubric:: DEFAULT VALUE:
-DEFAULT VALUE:
- The default value is ``Init``.
+The default value is ``Init``.
-VALUE CONSTRAINTS:
- The value of this configuration option shall be defined to a valid function
- pointer of the type ``void ( *entry_point )( rtems_task_argument )``.
+.. rubric:: DESCRIPTION:
-DESCRIPTION:
- The value of this configuration option initializes the entry point of the
- Classic API initialization task.
+The value of this configuration option initializes the entry point of the
+Classic API initialization task.
-NOTES:
- The application shall provide the function referenced by this configuration
- option.
+.. rubric:: NOTES:
+
+The application shall provide the function referenced by this configuration
+option.
+
+.. rubric:: CONSTRAINTS:
+
+The value of the configuration option shall be defined to a valid function
+pointer of the type ``void ( *entry_point )( rtems_task_argument )``.
.. Generated from spec:/acfg/if/init-task-initial-modes
+.. raw:: latex
+
+ \clearpage
+
.. index:: CONFIGURE_INIT_TASK_INITIAL_MODES
.. _CONFIGURE_INIT_TASK_INITIAL_MODES:
@@ -183,28 +219,34 @@ NOTES:
CONFIGURE_INIT_TASK_INITIAL_MODES
---------------------------------
-CONSTANT:
- ``CONFIGURE_INIT_TASK_INITIAL_MODES``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_INIT_TASK_INITIAL_MODES``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is an integer define.
-OPTION TYPE:
- This configuration option is an integer define.
+.. rubric:: DEFAULT VALUE:
-DEFAULT VALUE:
- In SMP configurations, the default value is :c:macro:`RTEMS_DEFAULT_MODES`
- otherwise the default value is :c:macro:`RTEMS_NO_PREEMPT`.
+In SMP configurations, the default value is :c:macro:`RTEMS_DEFAULT_MODES`
+otherwise the default value is :c:macro:`RTEMS_NO_PREEMPT`.
-VALUE CONSTRAINTS:
- The value of this configuration option shall be a valid task mode set.
+.. rubric:: DESCRIPTION:
-DESCRIPTION:
- The value of this configuration option defines the initial execution mode of
- the Classic API initialization task.
+The value of this configuration option defines the initial execution mode of
+the Classic API initialization task.
-NOTES:
- None.
+.. rubric:: CONSTRAINTS:
+
+The value of the configuration option shall be a valid task mode set.
.. Generated from spec:/acfg/if/init-task-name
+.. raw:: latex
+
+ \clearpage
+
.. index:: CONFIGURE_INIT_TASK_NAME
.. _CONFIGURE_INIT_TASK_NAME:
@@ -212,28 +254,38 @@ NOTES:
CONFIGURE_INIT_TASK_NAME
------------------------
-CONSTANT:
- ``CONFIGURE_INIT_TASK_NAME``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_INIT_TASK_NAME``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is an integer define.
+
+.. rubric:: DEFAULT VALUE:
+
+The default value is ``rtems_build_name( 'U', 'I', '1', ' ' )``.
-OPTION TYPE:
- This configuration option is an integer define.
+.. rubric:: DESCRIPTION:
-DEFAULT VALUE:
- The default value is ``rtems_build_name( 'U', 'I', '1', ' ' )``.
+The value of this configuration option defines the name of the Classic API
+initialization task.
+
+.. rubric:: NOTES:
-VALUE CONSTRAINTS:
- The value of this configuration option shall be convertible to an integer
- of type :c:type:`rtems_name`.
+Use :ref:`InterfaceRtemsBuildName` to define the task name.
-DESCRIPTION:
- The value of this configuration option defines the name of the Classic API
- initialization task.
+.. rubric:: CONSTRAINTS:
-NOTES:
- Use :c:func:`rtems_build_name` to define the task name.
+The value of the configuration option shall be convertible to an integer of
+type :c:type:`rtems_name`.
.. Generated from spec:/acfg/if/init-task-priority
+.. raw:: latex
+
+ \clearpage
+
.. index:: CONFIGURE_INIT_TASK_PRIORITY
.. _CONFIGURE_INIT_TASK_PRIORITY:
@@ -241,29 +293,35 @@ NOTES:
CONFIGURE_INIT_TASK_PRIORITY
----------------------------
-CONSTANT:
- ``CONFIGURE_INIT_TASK_PRIORITY``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_INIT_TASK_PRIORITY``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is an integer define.
+
+.. rubric:: DEFAULT VALUE:
-OPTION TYPE:
- This configuration option is an integer define.
+The default value is 1.
-DEFAULT VALUE:
- The default value is 1.
+.. rubric:: DESCRIPTION:
-VALUE CONSTRAINTS:
- The value of this configuration option shall be a valid Classic API task
- priority. The set of valid task priorities depends on the scheduler
- configuration.
+The value of this configuration option defines the initial priority of the
+Classic API initialization task.
-DESCRIPTION:
- The value of this configuration option defines the initial priority of the
- Classic API initialization task.
+.. rubric:: CONSTRAINTS:
-NOTES:
- None.
+The value of the configuration option shall be a valid Classic API task
+priority. The set of valid task priorities depends on the scheduler
+configuration.
.. Generated from spec:/acfg/if/init-task-stack-size
+.. raw:: latex
+
+ \clearpage
+
.. index:: CONFIGURE_INIT_TASK_STACK_SIZE
.. _CONFIGURE_INIT_TASK_STACK_SIZE:
@@ -271,41 +329,51 @@ NOTES:
CONFIGURE_INIT_TASK_STACK_SIZE
------------------------------
-CONSTANT:
- ``CONFIGURE_INIT_TASK_STACK_SIZE``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_INIT_TASK_STACK_SIZE``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is an integer define.
+
+.. rubric:: DEFAULT VALUE:
+
+The default value is :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+
+.. rubric:: DESCRIPTION:
-OPTION TYPE:
- This configuration option is an integer define.
+The value of this configuration option defines the task stack size of the
+Classic API initialization task.
-DEFAULT VALUE:
- The default value is :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+.. rubric:: NOTES:
-VALUE CONSTRAINTS:
- The value of this configuration option shall satisfy all of the following
- constraints:
+The
- * It shall be greater than or equal to
- :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
+* ``CONFIGURE_INIT_TASK_STACK_SIZE`` and
- * It shall be small enough so that the task stack space calculation carried
- out by ``<rtems/confdefs.h>`` does not overflow an integer of type
- `uintptr_t <https://en.cppreference.com/w/c/types/integer>`_.
+* :ref:`CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE`
-DESCRIPTION:
- The value of this configuration option defines the task stack size of the
- Classic API initialization task.
+configuration options are mutually exclusive.
-NOTES:
- The
+.. rubric:: CONSTRAINTS:
- * ``CONFIGURE_INIT_TASK_STACK_SIZE`` and
+The following constraints apply to this configuration option:
- * :ref:`CONFIGURE_INIT_TASK_CONSTRUCT_STORAGE_SIZE`
+* The value of the configuration option shall be greater than or equal to
+ :ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
- configuration options are mutually exclusive.
+* The value of the configuration option shall be small enough so that the task
+ stack space calculation carried out by ``<rtems/confdefs.h>`` does not
+ overflow an integer of type `uintptr_t
+ <https://en.cppreference.com/w/c/types/integer>`_.
.. Generated from spec:/acfg/if/rtems-init-tasks-table
+.. raw:: latex
+
+ \clearpage
+
.. index:: CONFIGURE_RTEMS_INIT_TASKS_TABLE
.. _CONFIGURE_RTEMS_INIT_TASKS_TABLE:
@@ -313,28 +381,36 @@ NOTES:
CONFIGURE_RTEMS_INIT_TASKS_TABLE
--------------------------------
-CONSTANT:
- ``CONFIGURE_RTEMS_INIT_TASKS_TABLE``
+.. rubric:: CONSTANT:
+
+``CONFIGURE_RTEMS_INIT_TASKS_TABLE``
+
+.. rubric:: OPTION TYPE:
+
+This configuration option is a boolean feature define.
+
+.. rubric:: DEFAULT CONFIGURATION:
+
+If this configuration option is undefined, then the described feature is not
+enabled.
+
+.. rubric:: DESCRIPTION:
-OPTION TYPE:
- This configuration option is a boolean feature define.
+In case this configuration option is defined, then exactly one Classic API
+initialization task is configured.
-DEFAULT CONFIGURATION:
- If this configuration option is undefined, then the described feature is not
- enabled.
+.. rubric:: NOTES:
-DESCRIPTION:
- In case this configuration option is defined, then exactly one Classic API
- initialization task is configured.
+The application shall define at least one of the following configuration
+options
-NOTES:
- The application shall define exactly one of the following configuration
- options
+* ``CONFIGURE_RTEMS_INIT_TASKS_TABLE``,
- * ``CONFIGURE_RTEMS_INIT_TASKS_TABLE``,
+* :ref:`CONFIGURE_POSIX_INIT_THREAD_TABLE`, or
- * :ref:`CONFIGURE_POSIX_INIT_THREAD_TABLE`, or
+* :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`
- * :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`
+otherwise a compile time error in the configuration file will occur.
- otherwise a compile time error in the configuration file will occur.
+The Classic API initialization task performs the
+:ref:`GlobalConstruction`.