diff options
Diffstat (limited to 'src/basic/clock-util.c')
-rw-r--r-- | src/basic/clock-util.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/basic/clock-util.c b/src/basic/clock-util.c index 05788a360e..507e757ff0 100644 --- a/src/basic/clock-util.c +++ b/src/basic/clock-util.c @@ -1,5 +1,3 @@ -/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ - /*** This file is part of systemd. @@ -146,3 +144,17 @@ int clock_reset_timewarp(void) { return 0; } + +#define TIME_EPOCH_USEC ((usec_t) TIME_EPOCH * USEC_PER_SEC) + +int clock_apply_epoch(void) { + struct timespec ts; + + if (now(CLOCK_REALTIME) >= TIME_EPOCH_USEC) + return 0; + + if (clock_settime(CLOCK_REALTIME, timespec_store(&ts, TIME_EPOCH_USEC)) < 0) + return -errno; + + return 1; +} |