[PATCH v2 08/12] c-user: Move deprecated/removed directives

Sebastian Huber sebastian.huber at embedded-brains.de
Wed Feb 10 16:28:05 UTC 2021


This makes it easier to automatically generate parts of the manager
documentation in the future.

Update #3993.
---
 c-user/clock/index.rst                |   1 +
 c-user/clock/removed-directives.rst   |  81 ++++++++
 c-user/task/deprecated-directives.rst |  46 +++++
 c-user/task/index.rst                 |   2 +
 c-user/task/removed-directives.rst    | 283 ++++++++++++++++++++++++++
 5 files changed, 413 insertions(+)
 create mode 100644 c-user/clock/removed-directives.rst
 create mode 100644 c-user/task/deprecated-directives.rst
 create mode 100644 c-user/task/removed-directives.rst

diff --git a/c-user/clock/index.rst b/c-user/clock/index.rst
index 11f2790..d84a37a 100644
--- a/c-user/clock/index.rst
+++ b/c-user/clock/index.rst
@@ -15,3 +15,4 @@ Clock Manager
     background
     operations
     directives
+    removed-directives
diff --git a/c-user/clock/removed-directives.rst b/c-user/clock/removed-directives.rst
new file mode 100644
index 0000000..d7fd775
--- /dev/null
+++ b/c-user/clock/removed-directives.rst
@@ -0,0 +1,81 @@
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+
+Removed Directives
+==================
+
+.. raw:: latex
+
+   \clearpage
+
+.. _rtems_clock_get:
+
+CLOCK_GET - Get date and time information
+-----------------------------------------
+.. index:: obtain the time of day
+.. index:: rtems_clock_get
+
+.. warning::
+
+    This directive was removed in RTEMS 5.1.  See also
+    :ref:`ClockManagerAdviceClockGet`.
+
+CALLING SEQUENCE:
+    .. code-block:: c
+
+        rtems_status_code rtems_clock_get(
+           rtems_clock_get_options  option,
+           void                    *time_buffer
+        );
+
+DIRECTIVE STATUS CODES:
+    .. list-table::
+      :class: rtems-table
+
+      * - ``RTEMS_SUCCESSFUL``
+        - current time obtained successfully
+      * - ``RTEMS_NOT_DEFINED``
+        - system date and time is not set
+      * - ``RTEMS_INVALID_ADDRESS``
+        - ``time_buffer`` is NULL
+
+DESCRIPTION:
+    This directive obtains the system date and time.  If the caller is
+    attempting to obtain the date and time (i.e.  option is set to either
+    ``RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH``, ``RTEMS_CLOCK_GET_TOD``, or
+    ``RTEMS_CLOCK_GET_TIME_VALUE``) and the date and time has not been set with
+    a previous call to ``rtems_clock_set``, then the ``RTEMS_NOT_DEFINED``
+    status code is returned.  The caller can always obtain the number of ticks
+    per second (option is ``RTEMS_CLOCK_GET_TICKS_PER_SECOND``) and the number
+    of ticks since the executive was initialized option is
+    ``RTEMS_CLOCK_GET_TICKS_SINCE_BOOT``).
+
+    The ``option`` argument may taken on any value of the enumerated type
+    ``rtems_clock_get_options``.  The data type expected for ``time_buffer`` is
+    based on the value of ``option`` as indicated below:
+
+    .. index:: rtems_clock_get_options
+
+    +-----------------------------------------+---------------------------+
+    | Option                                  | Return type               |
+    +=========================================+===========================+
+    | ``RTEMS_CLOCK_GET_TOD``                 | ``(rtems_time_of_day *)`` |
+    +-----------------------------------------+---------------------------+
+    | ``RTEMS_CLOCK_GET_SECONDS_SINCE_EPOCH`` | ``(rtems_interval *)``    |
+    +-----------------------------------------+---------------------------+
+    | ``RTEMS_CLOCK_GET_TICKS_SINCE_BOOT``    | ``(rtems_interval *)``    |
+    +-----------------------------------------+---------------------------+
+    |``RTEMS_CLOCK_GET_TICKS_PER_SECOND``     | ``(rtems_interval *)``    |
+    +-----------------------------------------+---------------------------+
+    | ``RTEMS_CLOCK_GET_TIME_VALUE``          | ``(struct timeval *)``    |
+    +-----------------------------------------+---------------------------+
+
+NOTES:
+    This directive is callable from an ISR.
+
+    This directive will not cause the running task to be preempted.
+    Re-initializing RTEMS causes the system date and time to be reset to an
+    uninitialized state.  Another call to ``rtems_clock_set`` is required to
+    re-initialize the system date and time to application specific
+    specifications.
diff --git a/c-user/task/deprecated-directives.rst b/c-user/task/deprecated-directives.rst
new file mode 100644
index 0000000..107c5e0
--- /dev/null
+++ b/c-user/task/deprecated-directives.rst
@@ -0,0 +1,46 @@
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+
+Deprecated Directives
+=====================
+
+.. raw:: latex
+
+   \clearpage
+
+.. index:: rtems_iterate_over_all_threads
+
+.. _rtems_iterate_over_all_threads:
+
+ITERATE_OVER_ALL_THREADS - Iterate Over Tasks
+---------------------------------------------
+
+.. warning::
+
+    This directive is deprecated.  Its use is unsafe.  Use
+    :ref:`rtems_task_iterate` instead.
+
+CALLING SEQUENCE:
+    .. code-block:: c
+
+        typedef void (*rtems_per_thread_routine)(Thread_Control *the_thread);
+        void rtems_iterate_over_all_threads(
+            rtems_per_thread_routine routine
+        );
+
+DIRECTIVE STATUS CODES:
+    NONE
+
+DESCRIPTION:
+    This directive iterates over all of the existant threads in the system and
+    invokes ``routine`` on each of them.  The user should be careful in
+    accessing the contents of ``the_thread``.
+
+    This routine is intended for use in diagnostic utilities and is not
+    intented for routine use in an operational system.
+
+NOTES:
+    There is **no protection** while this routine is called.  The thread
+    control block may be in an inconsistent state or may change due to
+    interrupts or activity on other processors.
diff --git a/c-user/task/index.rst b/c-user/task/index.rst
index 2ce8edb..afe8b76 100644
--- a/c-user/task/index.rst
+++ b/c-user/task/index.rst
@@ -15,3 +15,5 @@ Task Manager
     background
     operations
     directives
+    deprecated-directives
+    removed-directives
diff --git a/c-user/task/removed-directives.rst b/c-user/task/removed-directives.rst
new file mode 100644
index 0000000..8c8aae9
--- /dev/null
+++ b/c-user/task/removed-directives.rst
@@ -0,0 +1,283 @@
+.. SPDX-License-Identifier: CC-BY-SA-4.0
+
+.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
+
+Removed Directives
+==================
+
+.. raw:: latex
+
+   \clearpage
+
+.. index:: get task notepad entry
+.. index:: rtems_task_get_note
+
+.. _rtems_task_get_note:
+
+TASK_GET_NOTE - Get task notepad entry
+--------------------------------------
+
+.. warning::
+
+    This directive was removed in RTEMS 5.1.
+
+CALLING SEQUENCE:
+    .. code-block:: c
+
+        rtems_status_code rtems_task_get_note(
+          rtems_id  id,
+          uint32_t  notepad,
+          uint32_t *note
+        );
+
+DIRECTIVE STATUS CODES:
+    .. list-table::
+      :class: rtems-table
+
+      * - ``RTEMS_SUCCESSFUL``
+        - note value obtained successfully
+      * - ``RTEMS_INVALID_ADDRESS``
+        - ``note`` parameter is NULL
+      * - ``RTEMS_INVALID_ID``
+        - invalid task id
+      * - ``RTEMS_INVALID_NUMBER``
+        - invalid notepad location
+
+DESCRIPTION:
+    This directive returns the note contained in the notepad location of the
+    task specified by id.
+
+NOTES:
+    This directive will not cause the running task to be preempted.
+
+    If id is set to ``RTEMS_SELF``, the calling task accesses its own notepad.
+
+    The sixteen notepad locations can be accessed using the constants
+    ``RTEMS_NOTEPAD_0`` through ``RTEMS_NOTEPAD_15``.
+
+    Getting a note of a global task which does not reside on the local node
+    will generate a request to the remote node to obtain the notepad entry of
+    the specified task.
+
+.. raw:: latex
+
+   \clearpage
+
+.. index:: set task notepad entry
+.. index:: rtems_task_set_note
+
+.. _rtems_task_set_note:
+
+TASK_SET_NOTE - Set task notepad entry
+--------------------------------------
+
+.. warning::
+
+    This directive was removed in RTEMS 5.1.
+
+CALLING SEQUENCE:
+    .. code-block:: c
+
+        rtems_status_code rtems_task_set_note(
+          rtems_id  id,
+          uint32_t  notepad,
+          uint32_t  note
+        );
+
+DIRECTIVE STATUS CODES:
+    .. list-table::
+      :class: rtems-table
+
+      * - ``RTEMS_SUCCESSFUL``
+        - note set successfully
+      * - ``RTEMS_INVALID_ID``
+        - invalid task id
+      * - ``RTEMS_INVALID_NUMBER``
+        - invalid notepad location
+
+DESCRIPTION:
+    This directive sets the notepad entry for the task specified by id to the
+    value note.
+
+NOTES:
+    If ``id`` is set to ``RTEMS_SELF``, the calling task accesses its own
+    notepad.
+
+    This directive will not cause the running task to be preempted.
+
+    The sixteen notepad locations can be accessed using the constants
+    ``RTEMS_NOTEPAD_0`` through ``RTEMS_NOTEPAD_15``.
+
+    Setting a note of a global task which does not reside on the local node
+    will generate a request to the remote node to set the notepad entry of the
+    specified task.
+
+.. raw:: latex
+
+   \clearpage
+
+.. index:: per-task variable
+.. index:: task private variable
+.. index:: task private data
+.. index:: rtems_task_variable_add
+
+.. _rtems_task_variable_add:
+
+TASK_VARIABLE_ADD - Associate per task variable
+-----------------------------------------------
+
+.. warning::
+
+    This directive was removed in RTEMS 5.1.
+
+CALLING SEQUENCE:
+    .. code-block:: c
+
+        rtems_status_code rtems_task_variable_add(
+            rtems_id  tid,
+            void    **task_variable,
+            void    (*dtor)(void *)
+        );
+
+DIRECTIVE STATUS CODES:
+     .. list-table::
+      :class: rtems-table
+
+      * - ``RTEMS_SUCCESSFUL``
+        - per task variable added successfully
+      * - ``RTEMS_INVALID_ADDRESS``
+        - ``task_variable`` is NULL
+      * - ``RTEMS_INVALID_ID``
+        - invalid task id
+      * - ``RTEMS_NO_MEMORY``
+        - invalid task id
+      * - ``RTEMS_ILLEGAL_ON_REMOTE_OBJECT``
+        - not supported on remote tasks
+
+DESCRIPTION:
+    This directive adds the memory location specified by the ptr argument to
+    the context of the given task.  The variable will then be private to the
+    task.  The task can access and modify the variable, but the modifications
+    will not appear to other tasks, and other tasks' modifications to that
+    variable will not affect the value seen by the task.  This is accomplished
+    by saving and restoring the variable's value each time a task switch occurs
+    to or from the calling task.  If the dtor argument is non-NULL it specifies
+    the address of a 'destructor' function which will be called when the task
+    is deleted.  The argument passed to the destructor function is the task's
+    value of the variable.
+
+NOTES:
+    Task variables increase the context switch time to and from the tasks that
+    own them so it is desirable to minimize the number of task variables.  One
+    efficient method is to have a single task variable that is a pointer to a
+    dynamically allocated structure containing the task's private 'global'
+    data.  In this case the destructor function could be 'free'.
+
+    Per-task variables are disabled in SMP configurations and this service is
+    not available.
+
+.. raw:: latex
+
+   \clearpage
+
+.. index:: get per-task variable
+.. index:: obtain per-task variable
+.. index:: rtems_task_variable_get
+
+.. _rtems_task_variable_get:
+
+TASK_VARIABLE_GET - Obtain value of a per task variable
+-------------------------------------------------------
+
+.. warning::
+
+    This directive was removed in RTEMS 5.1.
+
+CALLING SEQUENCE:
+    .. code-block:: c
+
+        rtems_status_code rtems_task_variable_get(
+            rtems_id  tid,
+            void    **task_variable,
+            void    **task_variable_value
+        );
+
+DIRECTIVE STATUS CODES:
+    .. list-table::
+      :class: rtems-table
+
+      * - ``RTEMS_SUCCESSFUL``
+        - per task variable obtained successfully
+      * - ``RTEMS_INVALID_ADDRESS``
+        - ``task_variable`` is NULL
+      * - ``RTEMS_INVALID_ADDRESS``
+        - ``task_variable_value`` is NULL
+      * - ``RTEMS_INVALID_ADDRESS``
+        - ``task_variable`` is not found
+      * - ``RTEMS_NO_MEMORY``
+        - invalid task id
+      * - ``RTEMS_ILLEGAL_ON_REMOTE_OBJECT``
+        - not supported on remote tasks
+
+DESCRIPTION:
+    This directive looks up the private value of a task variable for a
+    specified task and stores that value in the location pointed to by the
+    result argument.  The specified task is usually not the calling task, which
+    can get its private value by directly accessing the variable.
+
+NOTES:
+    If you change memory which ``task_variable_value`` points to, remember to
+    declare that memory as volatile, so that the compiler will optimize it
+    correctly.  In this case both the pointer ``task_variable_value`` and data
+    referenced by ``task_variable_value`` should be considered volatile.
+
+    Per-task variables are disabled in SMP configurations and this service is
+    not available.
+
+.. raw:: latex
+
+   \clearpage
+
+.. index:: per-task variable
+.. index:: task private variable
+.. index:: task private data
+.. index:: rtems_task_variable_delete
+
+.. _rtems_task_variable_delete:
+
+TASK_VARIABLE_DELETE - Remove per task variable
+-----------------------------------------------
+
+.. warning::
+
+    This directive was removed in RTEMS 5.1.
+
+CALLING SEQUENCE:
+    .. code-block:: c
+
+        rtems_status_code rtems_task_variable_delete(
+            rtems_id  id,
+            void    **task_variable
+        );
+
+DIRECTIVE STATUS CODES:
+    .. list-table::
+      :class: rtems-table
+
+      * - ``RTEMS_SUCCESSFUL``
+        - per task variable deleted successfully
+      * - ``RTEMS_INVALID_ID``
+        - invalid task id
+      * - ``RTEMS_NO_MEMORY``
+        - invalid task id
+      * - ``RTEMS_INVALID_ADDRESS``
+        - ``task_variable`` is NULL
+      * - ``RTEMS_ILLEGAL_ON_REMOTE_OBJECT``
+        - not supported on remote tasks
+
+DESCRIPTION:
+    This directive removes the given location from a task's context.
+
+NOTES:
+    Per-task variables are disabled in SMP configurations and this service is
+    not available.
-- 
2.26.2



More information about the devel mailing list