Message ID | 20191111214758.3677-2-lukma@denx.de |
---|---|
State | New |
Headers | show |
Series | y2038: linux: timer_[sg]ettime conversion to 64 bit time | expand |
Dear All, > This change provides the glibc's internal struct itimerspec > representation, which is explicitly supporting 64 bit time (by using > struct __timespec64). > > Such representation is necessary to provide correct time after Y2038 > (time_t overflow) on devides with __TIMESIZE == 32. > --- > include/time.h | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/include/time.h b/include/time.h > index d7800eb30f..52ee213669 100644 > --- a/include/time.h > +++ b/include/time.h > @@ -82,6 +82,17 @@ struct __timespec64 > }; > #endif > > +#if __TIMESIZE == 64 > +# define __itimerspec64 itimerspec > +#else > +/* The glibc's internal representation of the struct itimerspec. */ > +struct __itimerspec64 > +{ > + struct __timespec64 it_interval; > + struct __timespec64 it_value; > +}; > +#endif > + > #if __TIMESIZE == 64 > # define __ctime64 ctime > #else Gentle ping. Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
On 11/11/2019 18:47, Lukasz Majewski wrote: > This change provides the glibc's internal struct itimerspec representation, > which is explicitly supporting 64 bit time (by using struct __timespec64). > > Such representation is necessary to provide correct time after Y2038 > (time_t overflow) on devides with __TIMESIZE == 32. LGTM, thanks. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> > --- > include/time.h | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/include/time.h b/include/time.h > index d7800eb30f..52ee213669 100644 > --- a/include/time.h > +++ b/include/time.h > @@ -82,6 +82,17 @@ struct __timespec64 > }; > #endif > > +#if __TIMESIZE == 64 > +# define __itimerspec64 itimerspec > +#else > +/* The glibc's internal representation of the struct itimerspec. */ > +struct __itimerspec64 > +{ > + struct __timespec64 it_interval; > + struct __timespec64 it_value; > +}; > +#endif > + > #if __TIMESIZE == 64 > # define __ctime64 ctime > #else > Ok, __timespec64 already handles both the padding and endianess.
diff --git a/include/time.h b/include/time.h index d7800eb30f..52ee213669 100644 --- a/include/time.h +++ b/include/time.h @@ -82,6 +82,17 @@ struct __timespec64 }; #endif +#if __TIMESIZE == 64 +# define __itimerspec64 itimerspec +#else +/* The glibc's internal representation of the struct itimerspec. */ +struct __itimerspec64 +{ + struct __timespec64 it_interval; + struct __timespec64 it_value; +}; +#endif + #if __TIMESIZE == 64 # define __ctime64 ctime #else