aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2019-10-24 21:01:40 +0000
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2019-10-30 17:11:10 -0300
commitf9a7554009cf38f390e74fcabc5b49f974f72382 (patch)
treeb8e5b100ca6f2bc18ff0b134d48c9e26e83325ba /include
parentUse clock_gettime to implement time. (diff)
downloadglibc-f9a7554009cf38f390e74fcabc5b49f974f72382.tar.gz
glibc-f9a7554009cf38f390e74fcabc5b49f974f72382.tar.bz2
glibc-f9a7554009cf38f390e74fcabc5b49f974f72382.zip
Change most internal uses of time to __clock_gettime.
As for gettimeofday, time will be implemented based on clock_gettime on all platforms and internal code should use clock_gettime directly. In addition to removing a layer of indirection, this will allow us to remove the PLT-bypass gunk for gettimeofday. The changed code always assumes __clock_gettime (CLOCK_REALTIME) or __clock_gettime (CLOCK_REALTIME_COARSE) (for Linux case) cannot fail, using the same rationale for gettimeofday change. And internal helper was added (time_now). Checked on x86_64-linux-gnu, i686-linux-gnu, powerpc64le-linux-gnu, powerpc64-linux-gnu, and powerpc-linux-gnu. Reviewed-by: Lukasz Majewski <lukma@denx.de>
Diffstat (limited to 'include')
-rw-r--r--include/time.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/include/time.h b/include/time.h
index de660f7f57..caf562a380 100644
--- a/include/time.h
+++ b/include/time.h
@@ -7,12 +7,12 @@
# include <stdbool.h>
# include <time/mktime-internal.h>
# include <endian.h>
+# include <time-clockid.h>
extern __typeof (strftime_l) __strftime_l;
libc_hidden_proto (__strftime_l)
extern __typeof (strptime_l) __strptime_l;
-libc_hidden_proto (time)
libc_hidden_proto (asctime)
libc_hidden_proto (mktime)
libc_hidden_proto (timelocal)
@@ -252,5 +252,15 @@ valid_nanoseconds (__syscall_slong_t ns)
{
return __glibc_likely (0 <= ns && ns < 1000000000);
}
+
+/* Helper function to get time in seconds, similar to time. */
+static inline time_t
+time_now (void)
+{
+ struct timespec ts;
+ __clock_gettime (TIME_CLOCK_GETTIME_CLOCKID, &ts);
+ return ts.tv_sec;
+}
#endif
+
#endif