mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-09 14:50:05 +00: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
|
#ifndef _ISOMAC
|
||||||
# include <bits/types/struct_timeval.h>
|
# include <bits/types/struct_timeval.h>
|
||||||
# include <struct___timespec64.h>
|
# include <struct___timespec64.h>
|
||||||
|
# include <struct___timeval64.h>
|
||||||
# include <bits/types/locale_t.h>
|
# include <bits/types/locale_t.h>
|
||||||
# include <stdbool.h>
|
# include <stdbool.h>
|
||||||
# include <time/mktime-internal.h>
|
# include <time/mktime-internal.h>
|
||||||
@ -73,20 +74,6 @@ 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 __utimbuf64 utimbuf
|
# define __utimbuf64 utimbuf
|
||||||
# define __itimerval64 itimerval
|
# define __itimerval64 itimerval
|
||||||
|
Loading…
Reference in New Issue
Block a user