mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-26 19:23:34 +08:00
y2038: include: Move struct __timeval64 definition to a separate file
The struct __timeval64's definition has been moved from ./include/time.h to ./include/struct___timeval64.h. This change would prevent from polluting other glibc namespaces (when headers are modified to support 64 bit time on architectures with __WORDSIZE==32). Now it is possible to just include definition of this particular structure when needed. Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
parent
481d01fa2b
commit
a308615f7c
17
include/struct___timeval64.h
Normal file
17
include/struct___timeval64.h
Normal file
@ -0,0 +1,17 @@
|
||||
#ifndef _STRUCT_TIMEVAL64_H
|
||||
#define _STRUCT_TIMEVAL64_H
|
||||
|
||||
#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
|
||||
#endif /* _STRUCT_TIMEVAL64_H */
|
@ -4,6 +4,7 @@
|
||||
#ifndef _ISOMAC
|
||||
# include <bits/types/struct_timeval.h>
|
||||
# include <struct___timespec64.h>
|
||||
# include <struct___timeval64.h>
|
||||
# include <bits/types/locale_t.h>
|
||||
# include <stdbool.h>
|
||||
# include <time/mktime-internal.h>
|
||||
@ -73,20 +74,6 @@ 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 __utimbuf64 utimbuf
|
||||
# define __itimerval64 itimerval
|
||||
|
Loading…
Reference in New Issue
Block a user