X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Ftime-util.h;h=7a64d454a04b14a0de68553dcaf7d03996c22e87;hb=ce5792dac67c5ae5656f1f9665b777d44af4cb35;hp=05369d295b3139db812f2b239be95047e6c1ae6d;hpb=5ab99e076c72a44f2e174e48abd9945cd0180d76;p=elogind.git diff --git a/src/shared/time-util.h b/src/shared/time-util.h index 05369d295..7a64d454a 100644 --- a/src/shared/time-util.h +++ b/src/shared/time-util.h @@ -65,7 +65,9 @@ typedef struct dual_timestamp { #define FORMAT_TIMESTAMP_RELATIVE_MAX 256 #define FORMAT_TIMESPAN_MAX 64 -#define DUAL_TIMESTAMP_NULL ((struct dual_timestamp) { 0, 0 }) +#define TIME_T_MAX (time_t)((1UL << ((sizeof(time_t) << 3) - 1)) - 1) + +#define DUAL_TIMESTAMP_NULL ((struct dual_timestamp) { 0ULL, 0ULL }) usec_t now(clockid_t clock); @@ -92,7 +94,7 @@ char *format_timestamp_relative(char *buf, size_t l, usec_t t); 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); -void dual_timestamp_deserialize(const char *value, dual_timestamp *t); +int dual_timestamp_deserialize(const char *value, dual_timestamp *t); int parse_timestamp(const char *t, usec_t *usec); @@ -105,3 +107,5 @@ int get_timezones(char ***l); bool timezone_is_valid(const char *name); clockid_t clock_boottime_or_monotonic(void); + +#define xstrftime(buf, fmt, tm) assert_se(strftime(buf, ELEMENTSOF(buf), fmt, tm) > 0)