Systemd/man/sd_journal_get_realtime_usec.xml
Lennart Poettering 64a7ef8bc0 man: be more explicit about thread safety of sd_journal
Triggered by https://bugzilla.redhat.com/show_bug.cgi?id=1609349

This adds two generic paragaphs we include via xinclude. One is the
"strict" version, which contains wording saying that we are thread
agnostic and what that means. And the other is the "safe" version, for
the cases we provide fully safety.

Let's then change most man pages to use either of these generic
paragraphs. With one exception: man/sd_journal_get_catalog.xml contains
both kinds of function, we hence use manual wording.
2018-08-03 17:36:11 +02:00

116 lines
4.7 KiB
XML

<?xml version='1.0'?> <!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!--
SPDX-License-Identifier: LGPL-2.1+
-->
<refentry id="sd_journal_get_realtime_usec"
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>sd_journal_get_realtime_usec</title>
<productname>systemd</productname>
</refentryinfo>
<refmeta>
<refentrytitle>sd_journal_get_realtime_usec</refentrytitle>
<manvolnum>3</manvolnum>
</refmeta>
<refnamediv>
<refname>sd_journal_get_realtime_usec</refname>
<refname>sd_journal_get_monotonic_usec</refname>
<refpurpose>Read timestamps from the current journal entry</refpurpose>
</refnamediv>
<refsynopsisdiv>
<funcsynopsis>
<funcsynopsisinfo>#include &lt;systemd/sd-journal.h&gt;</funcsynopsisinfo>
<funcprototype>
<funcdef>int <function>sd_journal_get_realtime_usec</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t *<parameter>usec</parameter></paramdef>
</funcprototype>
<funcprototype>
<funcdef>int <function>sd_journal_get_monotonic_usec</function></funcdef>
<paramdef>sd_journal *<parameter>j</parameter></paramdef>
<paramdef>uint64_t *<parameter>usec</parameter></paramdef>
<paramdef>sd_id128_t *<parameter>boot_id</parameter></paramdef>
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para><function>sd_journal_get_realtime_usec()</function> gets the
realtime (wallclock) timestamp of the current journal entry. It
takes two arguments: the journal context object and a pointer to a
64-bit unsigned integer to store the timestamp in. The timestamp
is in microseconds since the epoch, i.e.
<constant>CLOCK_REALTIME</constant>.</para>
<para><function>sd_journal_get_monotonic_usec()</function> gets
the monotonic timestamp of the current journal entry. It takes
three arguments: the journal context object, a pointer to a 64-bit
unsigned integer to store the timestamp in, as well as a 128-bit
ID buffer to store the boot ID of the monotonic timestamp. The
timestamp is in microseconds since boot-up of the specific boot,
i.e. <constant>CLOCK_MONOTONIC</constant>. Since the monotonic
clock begins new with every reboot, it only defines a well-defined
point in time when used together with an identifier identifying
the boot. See
<citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry>
for more information. If the boot ID parameter is passed
<constant>NULL</constant>, the function will fail if the monotonic
timestamp of the current entry is not of the current system
boot.</para>
<para>Note that these functions will not work before
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>
(or related call) has been called at least
once, in order to position the read pointer at a valid entry.</para>
</refsect1>
<refsect1>
<title>Return Value</title>
<para><function>sd_journal_get_realtime_usec()</function> and
<function>sd_journal_get_monotonic_usec()</function> returns 0 on
success or a negative errno-style error code. If the boot ID
parameter was passed <constant>NULL</constant> and the monotonic
timestamp of the current journal entry is not of the current
system boot, <constant>-ESTALE</constant> is returned by
<function>sd_journal_get_monotonic_usec()</function>.</para>
</refsect1>
<refsect1>
<title>Notes</title>
<xi:include href="threads-aware.xml" xpointer="strict"/>
<xi:include href="libsystemd-pkgconfig.xml" xpointer="pkgconfig-text"/>
</refsect1>
<refsect1>
<title>See Also</title>
<para>
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd-journal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_open</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_next</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_data</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_id128_get_boot</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
<citerefentry><refentrytitle>clock_gettime</refentrytitle><manvolnum>2</manvolnum></citerefentry>,
<citerefentry><refentrytitle>sd_journal_get_cutoff_realtime_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>
</para>
</refsect1>
</refentry>