From 1651e2c61e544de9ca947c8b3202552b1272ef57 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Fri, 18 Jul 2014 21:44:36 -0400 Subject: [PATCH] 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. --- man/sd_journal_get_cutoff_realtime_usec.xml | 36 +++++++++++++-------- src/journal/sd-journal.c | 16 ++++----- 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 0b2439908..673cff459 100644 --- a/man/sd_journal_get_cutoff_realtime_usec.xml +++ b/man/sd_journal_get_cutoff_realtime_usec.xml @@ -74,25 +74,29 @@ Description sd_journal_get_cutoff_realtime_usec() - 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 + j and two pointers + from and + to pointing at 64-bit unsigned + integers to store the timestamps in. The timestamps + are in microseconds since the epoch, i.e. CLOCK_REALTIME. Either one of the two timestamp arguments may be passed as NULL in case the timestamp is not needed, but not both. sd_journal_get_cutoff_monotonic_usec() - 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 + j, a 128-bit identifier for the + boot boot_id, and two pointers + to 64-bit unsigned integers to store the timestamps, + from and + to. The timestamps are in + microseconds since boot-up of the specific boot, i.e. CLOCK_MONOTONIC. Since the monotonic clock begins new with every reboot it only defines a well-defined point in time when used @@ -113,6 +117,12 @@ sd_journal_get_cutoff_monotonic_usec() return 1 on success, 0 if not suitable entries are in the journal or a negative errno-style error code. + + Locations pointed to by parameters + from and + to will be set only if the + return value is positive, and obviously, the + parameters are non-null. diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c index f674abf9d..6349aeb78 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) { -- 2.30.2