summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-07-18 21:44:36 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-07-18 21:44:36 -0400
commit1651e2c61e544de9ca947c8b3202552b1272ef57 (patch)
tree5e8c25a76fab1f188042b2898605dfc9ae436c85
parent01c3322e017989d25f7b4b51268245d5315ae678 (diff)
man,journal: add note about sd_journal_get_cutoff_monotonic_usec return value
Also modify the function itself to be a bit simpler to read.
-rw-r--r--man/sd_journal_get_cutoff_realtime_usec.xml36
-rw-r--r--src/journal/sd-journal.c16
2 files changed, 31 insertions, 21 deletions
diff --git a/man/sd_journal_get_cutoff_realtime_usec.xml b/man/sd_journal_get_cutoff_realtime_usec.xml
index 0b24399088..673cff4591 100644
--- a/man/sd_journal_get_cutoff_realtime_usec.xml
+++ b/man/sd_journal_get_cutoff_realtime_usec.xml
@@ -74,25 +74,29 @@
<title>Description</title>
<para><function>sd_journal_get_cutoff_realtime_usec()</function>
- gets the realtime (wallclock) timestamps of the first
- and last entries accessible in the journal. It takes
- three arguments: the journal context object and two
- pointers to 64-bit unsigned integers to store the
- timestamps in. The timestamps are in microseconds
- since the epoch,
+ retrieves the realtime (wallclock) timestamps of the
+ first and last entries accessible in the journal. It
+ takes three arguments: the journal context object
+ <parameter>j</parameter> and two pointers
+ <parameter>from</parameter> and
+ <parameter>to</parameter> pointing at 64-bit unsigned
+ integers to store the timestamps in. The timestamps
+ are in microseconds since the epoch,
i.e. <constant>CLOCK_REALTIME</constant>. Either one
of the two timestamp arguments may be passed as
<constant>NULL</constant> in case the timestamp is not
needed, but not both.</para>
<para><function>sd_journal_get_cutoff_monotonic_usec()</function>
- gets the monotonic timestamps of the first and last
- entries accessible in the journal. It takes three
- arguments: the journal context object, a 128-bit
- identifier for the boot, and two pointers to 64-bit
- unsigned integers to store the timestamps. The
- timestamps are in microseconds since boot-up of the
- specific boot,
+ retrieves the monotonic timestamps of the first and
+ last entries accessible in the journal. It takes three
+ arguments: the journal context object
+ <parameter>j</parameter>, a 128-bit identifier for the
+ boot <parameter>boot_id</parameter>, and two pointers
+ to 64-bit unsigned integers to store the timestamps,
+ <parameter>from</parameter> and
+ <parameter>to</parameter>. The timestamps are 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
@@ -113,6 +117,12 @@
<function>sd_journal_get_cutoff_monotonic_usec()</function>
return 1 on success, 0 if not suitable entries are in
the journal or a negative errno-style error code.</para>
+
+ <para>Locations pointed to by parameters
+ <parameter>from</parameter> and
+ <parameter>to</parameter> will be set only if the
+ return value is positive, and obviously, the
+ parameters are non-null.</para>
</refsect1>
<refsect1>
diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c
index f674abf9d7..6349aeb785 100644
--- a/src/journal/sd-journal.c
+++ b/src/journal/sd-journal.c
@@ -2399,7 +2399,7 @@ _public_ int sd_journal_get_cutoff_realtime_usec(sd_journal *j, uint64_t *from,
_public_ int sd_journal_get_cutoff_monotonic_usec(sd_journal *j, sd_id128_t boot_id, uint64_t *from, uint64_t *to) {
Iterator i;
JournalFile *f;
- bool first = true;
+ bool found = false;
int r;
assert_return(j, -EINVAL);
@@ -2418,21 +2418,21 @@ _public_ int sd_journal_get_cutoff_monotonic_usec(sd_journal *j, sd_id128_t boot
if (r == 0)
continue;
- if (first) {
+ if (found) {
if (from)
- *from = fr;
+ *from = MIN(fr, *from);
if (to)
- *to = t;
- first = false;
+ *to = MAX(t, *to);
} else {
if (from)
- *from = MIN(fr, *from);
+ *from = fr;
if (to)
- *to = MAX(t, *to);
+ *to = t;
+ found = true;
}
}
- return first ? 0 : 1;
+ return found;
}
void journal_print_header(sd_journal *j) {