mirror of
git://sourceware.org/git/glibc.git
synced 2025-03-13 13:37:38 +08:00
y2038: Introduce struct __timeval64 - new internal glibc type
This type is a glibc's "internal" type similar to struct timeval but whose tv_sec field is a __time64_t rather than a time_t, which makes it Y2038-proof. This struct is NOT supposed to be passed to the kernel - instead it shall be converted to struct __timespec64 and clock_[sg]ettime syscalls shall be used (which are now Y2038 safe). Build tests: ./src/scripts/build-many-glibcs.py glibcs Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
parent
3fced064f2
commit
504c987170
@ -93,6 +93,20 @@ struct __itimerspec64
|
||||
};
|
||||
#endif
|
||||
|
||||
#if __TIMESIZE == 64
|
||||
# define __timeval64 timeval
|
||||
#else
|
||||
/* The glibc Y2038-proof struct __timeval64 structure for a time value.
|
||||
This structure is NOT supposed to be passed to the Linux kernel.
|
||||
Instead, it shall be converted to struct __timespec64 and time shall
|
||||
be [sg]et via clock_[sg]ettime (which are now Y2038 safe). */
|
||||
struct __timeval64
|
||||
{
|
||||
__time64_t tv_sec; /* Seconds */
|
||||
__suseconds64_t tv_usec; /* Microseconds */
|
||||
};
|
||||
#endif
|
||||
|
||||
#if __TIMESIZE == 64
|
||||
# define __ctime64 ctime
|
||||
#else
|
||||
|
Loading…
x
Reference in New Issue
Block a user