mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-08 14:20:07 +00:00
y2038: Provide conversion helpers for struct __timespec64
Those functions allow easy conversion between Y2038 safe struct __timespec64 and other time related data structures (like struct timeval or struct timespec). * include/time.h (valid_timeval_to_timespec64): Add. * include/time.h (valid_timespec_to_timespec64): Likewise. * include/time.h (valid_timespec64_to_timespec): Likewise. * include/time.h (valid_timespec64_to_timeval): Likewise.
This commit is contained in:
parent
71bdf29ac1
commit
9c44c6a908
@ -1,3 +1,10 @@
|
||||
2019-10-01 Lukasz Majewski <lukma@denx.de>
|
||||
|
||||
* include/time.h (valid_timeval_to_timespec64): Add.
|
||||
* include/time.h (valid_timespec_to_timespec64): Likewise.
|
||||
* include/time.h (valid_timespec64_to_timespec): Likewise.
|
||||
* include/time.h (valid_timespec64_to_timeval): Likewise.
|
||||
|
||||
2019-09-30 Joseph Myers <joseph@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/powerpc/bits/mman.h [__USE_MISC]
|
||||
|
@ -178,5 +178,54 @@ in_time_t_range (__time64_t t)
|
||||
return s == t;
|
||||
}
|
||||
|
||||
/* Convert a known valid struct timeval into a struct __timespec64. */
|
||||
static inline struct __timespec64
|
||||
valid_timeval_to_timespec64 (const struct timeval tv)
|
||||
{
|
||||
struct __timespec64 ts64;
|
||||
|
||||
ts64.tv_sec = tv.tv_sec;
|
||||
ts64.tv_nsec = tv.tv_usec * 1000;
|
||||
|
||||
return ts64;
|
||||
}
|
||||
|
||||
/* Convert a known valid struct timespec into a struct __timespec64. */
|
||||
static inline struct __timespec64
|
||||
valid_timespec_to_timespec64 (const struct timespec ts)
|
||||
{
|
||||
struct __timespec64 ts64;
|
||||
|
||||
ts64.tv_sec = ts.tv_sec;
|
||||
ts64.tv_nsec = ts.tv_nsec;
|
||||
|
||||
return ts64;
|
||||
}
|
||||
|
||||
/* Convert a valid and within range of struct timespec, struct
|
||||
__timespec64 into a struct timespec. */
|
||||
static inline struct timespec
|
||||
valid_timespec64_to_timespec (const struct __timespec64 ts64)
|
||||
{
|
||||
struct timespec ts;
|
||||
|
||||
ts.tv_sec = (time_t) ts64.tv_sec;
|
||||
ts.tv_nsec = ts64.tv_nsec;
|
||||
|
||||
return ts;
|
||||
}
|
||||
|
||||
/* Convert a valid and within range of struct timeval struct
|
||||
__timespec64 into a struct timeval. */
|
||||
static inline struct timeval
|
||||
valid_timespec64_to_timeval (const struct __timespec64 ts64)
|
||||
{
|
||||
struct timeval tv;
|
||||
|
||||
tv.tv_sec = (time_t) ts64.tv_sec;
|
||||
tv.tv_usec = ts64.tv_nsec / 1000;
|
||||
|
||||
return tv;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user