summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--payloads/libpayload/include/time.h1
-rw-r--r--payloads/libpayload/libc/time.c26
2 files changed, 21 insertions, 6 deletions
diff --git a/payloads/libpayload/include/time.h b/payloads/libpayload/include/time.h
index 25f476c82e..42be725e31 100644
--- a/payloads/libpayload/include/time.h
+++ b/payloads/libpayload/include/time.h
@@ -44,6 +44,7 @@ struct timeval {
suseconds_t tv_usec; /**< Microseconds */
};
+time_t time(time_t *tp);
int gettimeofday(struct timeval *tv, void *tz);
/** @} */
diff --git a/payloads/libpayload/libc/time.c b/payloads/libpayload/libc/time.c
index 4ed788fbdc..46306bb1ba 100644
--- a/payloads/libpayload/libc/time.c
+++ b/payloads/libpayload/libc/time.c
@@ -121,13 +121,12 @@ static void gettimeofday_init(void)
#endif
/**
- * Return the current time broken into a timeval structure.
+ * Return the current time expressed as seconds from 00:00:00 UTC, 1 Jan 1970.
*
- * @param tv A pointer to a timeval structure.
- * @param tz Added for compatability - not used.
- * @return 0 for success (this function cannot return non-zero currently).
+ * @param tp When not NULL, set this to the current time in seconds.
+ * @return The current time in seconds.
*/
-int gettimeofday(struct timeval *tv, void *tz)
+time_t time(time_t *tp)
{
/*
* Call the gtod init when we need it - this keeps the code from
@@ -138,7 +137,22 @@ int gettimeofday(struct timeval *tv, void *tz)
update_clock();
- tv->tv_sec = clock.secs;
+ if (tp)
+ *tp = clock.secs;
+
+ return clock.secs;
+}
+
+/**
+ * Return the current time broken into a timeval structure.
+ *
+ * @param tv A pointer to a timeval structure.
+ * @param tz Added for compatibility - not used.
+ * @return 0 for success (this function cannot return non-zero currently).
+ */
+int gettimeofday(struct timeval *tv, void *tz)
+{
+ tv->tv_sec = time(NULL);
tv->tv_usec = clock.usecs;
return 0;