summaryrefslogtreecommitdiffstats
path: root/c-user
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2023-07-25 07:36:09 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2023-07-25 07:36:09 +0200
commit6692946100096d567b695f035e128ddcb09ffa4a (patch)
treec11f26bf28df6cddd2da48d6611919f282643d00 /c-user
parentuser/bsps/imxrt: Add new BSP variant (diff)
downloadrtems-docs-6692946100096d567b695f035e128ddcb09ffa4a.tar.bz2
c-user: Link task entry and global construction
Diffstat (limited to 'c-user')
-rw-r--r--c-user/config/classic-init-task.rst5
-rw-r--r--c-user/config/idle-task.rst5
-rw-r--r--c-user/config/posix-init-thread.rst5
-rw-r--r--c-user/glossary.rst13
-rw-r--r--c-user/rtems_data_types.rst2
-rw-r--r--c-user/task/directives.rst6
6 files changed, 29 insertions, 7 deletions
diff --git a/c-user/config/classic-init-task.rst b/c-user/config/classic-init-task.rst
index a104008..f65bb8a 100644
--- a/c-user/config/classic-init-task.rst
+++ b/c-user/config/classic-init-task.rst
@@ -401,7 +401,7 @@ initialization task is configured.
.. rubric:: NOTES:
-The application shall define exactly one of the following configuration
+The application shall define at least one of the following configuration
options
* ``CONFIGURE_RTEMS_INIT_TASKS_TABLE``,
@@ -411,3 +411,6 @@ options
* :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`
otherwise a compile time error in the configuration file will occur.
+
+The Classic API initialization task performs the
+:ref:`GlobalConstruction`.
diff --git a/c-user/config/idle-task.rst b/c-user/config/idle-task.rst
index e98ad83..793fb5c 100644
--- a/c-user/config/idle-task.rst
+++ b/c-user/config/idle-task.rst
@@ -123,7 +123,7 @@ If this configuration option is defined, then it is mandatory to configure a
user IDLE task with the :ref:`CONFIGURE_IDLE_TASK_BODY` configuration option,
otherwise a compile time error in the configuration file will occur.
-The application shall define exactly one of the following configuration
+The application shall define at least one of the following configuration
options
* :ref:`CONFIGURE_RTEMS_INIT_TASKS_TABLE`,
@@ -134,6 +134,9 @@ options
otherwise a compile time error in the configuration file will occur.
+If no Classic API initialization task and no POSIX API initialization thread
+is configured, then no :ref:`GlobalConstruction` is performed.
+
.. Generated from spec:/acfg/if/idle-task-stack-size
.. raw:: latex
diff --git a/c-user/config/posix-init-thread.rst b/c-user/config/posix-init-thread.rst
index 348a94d..ee09ba0 100644
--- a/c-user/config/posix-init-thread.rst
+++ b/c-user/config/posix-init-thread.rst
@@ -141,7 +141,7 @@ initialization thread is configured.
.. rubric:: NOTES:
-The application shall define exactly one of the following configuration
+The application shall define at least one of the following configuration
options
* :ref:`CONFIGURE_RTEMS_INIT_TASKS_TABLE`,
@@ -151,3 +151,6 @@ options
* :ref:`CONFIGURE_IDLE_TASK_INITIALIZES_APPLICATION`
otherwise a compile time error in the configuration file will occur.
+
+If no Classic API initialization task is configured, then the POSIX API
+initialization thread performs the :ref:`GlobalConstruction`.
diff --git a/c-user/glossary.rst b/c-user/glossary.rst
index df3b9a3..82aedcd 100644
--- a/c-user/glossary.rst
+++ b/c-user/glossary.rst
@@ -375,6 +375,10 @@ Glossary
An object that has been created with the GLOBAL attribute and exported to
all nodes in a multiprocessor system.
+ global construction
+ In the global construction, the C++ global constructors and constructor
+ functions are invoked. See :ref:`GlobalConstruction`.
+
GNAT
*GNAT* is the :term:`GNU` compiler for Ada, integrated into the
:term:`GCC`.
@@ -1079,6 +1083,15 @@ Glossary
A data structure associated with each task used by RTEMS to manage that
task.
+ task entry
+ The task entry is invoked to execute the task's job. Before the task entry
+ is invoked, the thread begin :term:`user extensions` run in the context of
+ the task. After the return of the task entry, the thread exitted user
+ extensions run in the context of the task. The first user initialization
+ task performs the :term:`global construction` after running the thread begin
+ extensions and before the task entry is invoked. See also
+ :ref:`InterfaceRtemsTaskStart`.
+
task migration
Task migration happens in case a task stops execution on one processor
and resumes execution on another processor.
diff --git a/c-user/rtems_data_types.rst b/c-user/rtems_data_types.rst
index a311509..8e4274b 100644
--- a/c-user/rtems_data_types.rst
+++ b/c-user/rtems_data_types.rst
@@ -1523,7 +1523,7 @@ extension set.
rtems_task_entry
----------------
-This type defines the entry point of an RTEMS task.
+This type defines the :term:`task entry` point of an RTEMS task.
.. Generated from spec:/rtems/userext/if/task-exitted
diff --git a/c-user/task/directives.rst b/c-user/task/directives.rst
index f4b65f5..d976905 100644
--- a/c-user/task/directives.rst
+++ b/c-user/task/directives.rst
@@ -624,9 +624,9 @@ Starts the task.
.. rubric:: DESCRIPTION:
This directive readies the task, specified by ``id``, for execution based on
-the priority and execution mode specified when the task was created. The entry
-point of the task is given in ``entry_point``. The task's entry point argument
-is contained in ``argument``.
+the priority and execution mode specified when the task was created. The
+:term:`task entry` point of the task is given in ``entry_point``. The task's
+entry point argument is contained in ``argument``.
.. rubric:: RETURN VALUES: