c-user: Add removed directive rtems_clock_get()

Be in line with Task Manager chapter.

Update #2693.
This commit is contained in:
Sebastian Huber 2020-04-14 17:09:32 +02:00
parent 02bded3f03
commit e150e1689a

View File

@ -184,20 +184,29 @@ RTEMS provides multiple directives which can be used by an application to obtain
Calendar time operations will return an error code if invoked before the date
and time have been set.
.. index:: rtems_clock_get
.. _ClockManagerAdviceClockGet:
Transition Advice for the Obsolete rtems_clock_get
--------------------------------------------------
Transition Advice for the Removed rtems_clock_get()
---------------------------------------------------
The method ``rtems_clock_get`` took an untyped pointer with an
options argument to indicate the time information desired. This has
been replaced with a set of typed directives whose name is of the form
``rtems_clock_get_INFORMATION`` where INFORMATION indicates the type of
information and possibly the format. These methods directly correspond to
what were previously referred to ask "clock options." These strongly typed
were available for multiple releases in parallel with ``rtems_clock_get``
until that method was removed.
The directive :ref:`rtems_clock_get` took an untyped pointer with an options
argument to indicate the time information desired. This has been replaced with
a set of typed directives:
* :ref:`rtems_clock_get_seconds_since_epoch`
* :ref:`rtems_clock_get_ticks_per_second`
* :ref:`rtems_clock_get_ticks_since_boot`
* :ref:`rtems_clock_get_tod`
* :ref:`rtems_clock_get_tod_timeval`
These directives directly correspond to what were previously referred to as
*clock options*. These strongly typed directives were available for multiple
releases in parallel with :c:func:`rtems_clock_get` until that directive was
removed.
Directives
==========
@ -260,11 +269,11 @@ NOTES:
\clearpage
.. _rtems_clock_get_tod:
.. index:: obtain the time of day
.. index:: rtems_clock_get_tod
.. _rtems_clock_get_tod:
CLOCK_GET_TOD - Get date and time in TOD format
-----------------------------------------------
@ -304,11 +313,11 @@ NOTES:
\clearpage
.. _rtems_clock_get_tod_timeval:
.. index:: obtain the time of day
.. index:: rtems_clock_get_tod_timeval
.. _rtems_clock_get_tod_timeval:
CLOCK_GET_TOD_TIMEVAL - Get date and time in timeval format
-----------------------------------------------------------
@ -348,11 +357,11 @@ NOTES:
\clearpage
.. _rtems_clock_get_seconds_since_epoch:
.. index:: obtain seconds since epoch
.. index:: rtems_clock_get_seconds_since_epoch
.. _rtems_clock_get_seconds_since_epoch:
CLOCK_GET_SECONDS_SINCE_EPOCH - Get seconds since epoch
-------------------------------------------------------
@ -392,11 +401,11 @@ NOTES:
\clearpage
.. _rtems_clock_get_ticks_per_second:
.. index:: obtain seconds since epoch
.. index:: rtems_clock_get_ticks_per_second
.. _rtems_clock_get_ticks_per_second:
CLOCK_GET_TICKS_PER_SECOND - Get ticks per second
-------------------------------------------------
@ -422,12 +431,12 @@ NOTES:
\clearpage
.. _rtems_clock_get_ticks_since_boot:
.. index:: obtain ticks since boot
.. index:: get current ticks counter value
.. index:: rtems_clock_get_ticks_since_boot
.. _rtems_clock_get_ticks_since_boot:
CLOCK_GET_TICKS_SINCE_BOOT - Get current ticks counter value
------------------------------------------------------------
@ -666,3 +675,81 @@ DESCRIPTION:
NOTES:
This directive may be called from an ISR.
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.