mirror of
https://git.rtems.org/rtems-docs/
synced 2025-05-15 15:36:57 +08:00
82 lines
3.1 KiB
ReStructuredText
82 lines
3.1 KiB
ReStructuredText
.. 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.
|