[rtems-docs commit] c-user: Link task entry and global construction

Sebastian Huber sebh at rtems.org
Tue Jul 25 05:13:56 UTC 2023


Module:    rtems-docs
Branch:    master
Commit:    6692946100096d567b695f035e128ddcb09ffa4a
Changeset: http://git.rtems.org/rtems-docs/commit/?id=6692946100096d567b695f035e128ddcb09ffa4a

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Jul 25 07:36:09 2023 +0200

c-user: Link task entry and global construction

---

 c-user/config/classic-init-task.rst |  5 ++++-
 c-user/config/idle-task.rst         |  5 ++++-
 c-user/config/posix-init-thread.rst |  5 ++++-
 c-user/glossary.rst                 | 13 +++++++++++++
 c-user/rtems_data_types.rst         |  2 +-
 c-user/task/directives.rst          |  6 +++---
 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:
 



More information about the vc mailing list