From ebf30a086dfa526ca048cf14ae16bb403f3dcd12 Mon Sep 17 00:00:00 2001 From: Alexander Kuleshov Date: Tue, 16 Feb 2016 00:01:44 +0600 Subject: [PATCH] time-util: introduce deserialize_timestamp_value() The time-util.c provides dual_timestamp_deserialize() function to convert value to usec_t and set it as value of ts->monotonic and ts->realtime. There are some places in code which do the same but only for one clockid_t (realtime or monotonic), when dual_timestamp_deserialize() sets value of both. This patch introduces the deserialize_timestamp_value() which converts a given value to usec_t and write it to a given timestamp. --- src/basic/time-util.c | 13 +++++++++++++ src/basic/time-util.h | 1 + 2 files changed, 14 insertions(+) diff --git a/src/basic/time-util.c b/src/basic/time-util.c index 510f018..ac5988f 100644 --- a/src/basic/time-util.c +++ b/src/basic/time-util.c @@ -459,6 +459,19 @@ int dual_timestamp_deserialize(const char *value, dual_timestamp *t) { return 0; } +int deserialize_timestamp_value(const char *value, usec_t *timestamp) { + int r; + + assert(value); + + r = safe_atou64(value, timestamp); + + if (r < 0) + return log_debug_errno(r, "Failed to parse finish timestamp value \"%s\": %m", value); + + return r; +} + int parse_timestamp(const char *t, usec_t *usec) { static const struct { const char *name; diff --git a/src/basic/time-util.h b/src/basic/time-util.h index 9894e62..a826ad7 100644 --- a/src/basic/time-util.h +++ b/src/basic/time-util.h @@ -99,6 +99,7 @@ char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy); void dual_timestamp_serialize(FILE *f, const char *name, dual_timestamp *t); int dual_timestamp_deserialize(const char *value, dual_timestamp *t); +int deserialize_timestamp_value(const char *value, usec_t *timestamp); int parse_timestamp(const char *t, usec_t *usec); -- 2.7.4