From e6111c151794c4c15a0988e259666ef5be24ffcc Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 13 Jun 2016 15:29:05 +0100 Subject: [time] Allow system clock to be adjusted at runtime Provide a mechanism to allow an arbitrary adjustment to be applied to all subsequent calls to time(). Note that the underlying clock source (e.g. the RTC clock) will not be changed; only the time as reported within iPXE will be affected. Signed-off-by: Michael Brown --- src/include/ipxe/time.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'src/include/ipxe') diff --git a/src/include/ipxe/time.h b/src/include/ipxe/time.h index 4c5bb2a00..89bf90e03 100644 --- a/src/include/ipxe/time.h +++ b/src/include/ipxe/time.h @@ -50,11 +50,24 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); /* Include all architecture-dependent time API headers */ #include +extern signed long time_offset; + /** - * Get current time in seconds + * Get current time in seconds (ignoring system clock offset) * * @ret time Time, in seconds */ time_t time_now ( void ); +/** + * Adjust system clock + * + * @v delta Clock adjustment, in seconds + */ +static inline __attribute__ (( always_inline )) void +time_adjust ( signed long delta ) { + + time_offset += delta; +} + #endif /* _IPXE_TIME_H */ -- cgit v1.2.3-55-g7522