From 7cd07551985598bd3e3abc425c2e392297f46395 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 5 Sep 2023 02:14:01 +0900 Subject: [PATCH] time-util: introduce triple_timestamp_from_boottime() --- src/basic/time-util.c | 19 +++++++++++++++++++ src/basic/time-util.h | 1 + 2 files changed, 20 insertions(+) diff --git a/src/basic/time-util.c b/src/basic/time-util.c index 1db630003a..a6790d207c 100644 --- a/src/basic/time-util.c +++ b/src/basic/time-util.c @@ -156,6 +156,25 @@ triple_timestamp* triple_timestamp_from_realtime(triple_timestamp *ts, usec_t u) return ts; } +triple_timestamp* triple_timestamp_from_boottime(triple_timestamp *ts, usec_t u) { + usec_t nowb; + + assert(ts); + + if (u == USEC_INFINITY) { + ts->realtime = ts->monotonic = ts->boottime = u; + return ts; + } + + nowb = now(CLOCK_BOOTTIME); + + ts->boottime = u; + ts->monotonic = map_clock_usec_internal(u, nowb, now(CLOCK_MONOTONIC)); + ts->realtime = map_clock_usec_internal(u, nowb, now(CLOCK_REALTIME)); + + return ts; +} + dual_timestamp* dual_timestamp_from_monotonic(dual_timestamp *ts, usec_t u) { assert(ts); diff --git a/src/basic/time-util.h b/src/basic/time-util.h index 57283d31a7..b648a3b59e 100644 --- a/src/basic/time-util.h +++ b/src/basic/time-util.h @@ -86,6 +86,7 @@ dual_timestamp* dual_timestamp_from_boottime(dual_timestamp *ts, usec_t u); triple_timestamp* triple_timestamp_get(triple_timestamp *ts); triple_timestamp* triple_timestamp_from_realtime(triple_timestamp *ts, usec_t u); +triple_timestamp* triple_timestamp_from_boottime(triple_timestamp *ts, usec_t u); #define DUAL_TIMESTAMP_HAS_CLOCK(clock) \ IN_SET(clock, CLOCK_REALTIME, CLOCK_REALTIME_ALARM, CLOCK_MONOTONIC) -- 2.25.1