diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2019-10-24 21:01:40 +0000 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2019-10-30 17:11:10 -0300 |
commit | f9a7554009cf38f390e74fcabc5b49f974f72382 (patch) | |
tree | b8e5b100ca6f2bc18ff0b134d48c9e26e83325ba /include | |
parent | Use clock_gettime to implement time. (diff) | |
download | glibc-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.h | 12 |
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 |