mirror of git://sourceware.org/git/glibc.git
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
|
#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
|
#if __TIMESIZE == 64
|
||||||
# define __ctime64 ctime
|
# define __ctime64 ctime
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue