Re: [PATCH 01/11] linux/time64.h:Introduce the 'struct itimerspec64' for 64bit
On 21 April 2015 at 03:14, Thomas Gleixner t...@linutronix.de wrote: On Mon, 20 Apr 2015, Baolin Wang wrote: This patch introduces the 'struct itimerspec64' for 64bit to replace itimerspec, and also introduces the conversion methods: itimerspec64_to_itimerspec() and itimerspec_to_itimerspec64(), that makes itimerspec to ready for 2038 year. Signed-off-by: Baolin Wang baolin.w...@linaro.org --- include/linux/time64.h | 13 + 1 file changed, 13 insertions(+) diff --git a/include/linux/time64.h b/include/linux/time64.h index a383147..3647bdd 100644 --- a/include/linux/time64.h +++ b/include/linux/time64.h @@ -18,6 +18,11 @@ struct timespec64 { }; #endif +struct itimerspec64 { + struct timespec64 it_interval; /* timer period */ + struct timespec64 it_value; /* timer expiration */ +}; + /* Parameters used to convert the timespec values: */ #define MSEC_PER_SEC 1000L #define USEC_PER_MSEC1000L @@ -187,4 +192,12 @@ static __always_inline void timespec64_add_ns(struct timespec64 *a, u64 ns) #endif +#define itimerspec64_to_itimerspec(its64) \ +#define itimerspec_to_itimerspec64(its) \ 1.) Make these static inlines please. These macros are not typesafe. 2.) Use pointers to the input value. Thanks. tglx Thanks for your comments, i'll fix in next patch. -- Baolin.wang Best Regards ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 01/11] linux/time64.h:Introduce the 'struct itimerspec64' for 64bit
On 20 April 2015 at 17:49, Sergei Shtylyov sergei.shtyl...@cogentembedded.com wrote: Hello. On 4/20/2015 8:57 AM, Baolin Wang wrote: This patch introduces the 'struct itimerspec64' for 64bit to replace itimerspec, and also introduces the conversion methods: itimerspec64_to_itimerspec() and itimerspec_to_itimerspec64(), that makes itimerspec to ready for 2038 year. To not needed here. Signed-off-by: Baolin Wang baolin.w...@linaro.org [...] WBR, Sergei Hi Sergei, Sorry for the mistake. Thank you for your comments. I'll fix that in next patch. -- Baolin.wang Best Regards ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 01/11] linux/time64.h:Introduce the 'struct itimerspec64' for 64bit
Hello. On 4/20/2015 8:57 AM, Baolin Wang wrote: This patch introduces the 'struct itimerspec64' for 64bit to replace itimerspec, and also introduces the conversion methods: itimerspec64_to_itimerspec() and itimerspec_to_itimerspec64(), that makes itimerspec to ready for 2038 year. To not needed here. Signed-off-by: Baolin Wang baolin.w...@linaro.org [...] WBR, Sergei ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 01/11] linux/time64.h:Introduce the 'struct itimerspec64' for 64bit
On Mon, 20 Apr 2015, Baolin Wang wrote: This patch introduces the 'struct itimerspec64' for 64bit to replace itimerspec, and also introduces the conversion methods: itimerspec64_to_itimerspec() and itimerspec_to_itimerspec64(), that makes itimerspec to ready for 2038 year. Signed-off-by: Baolin Wang baolin.w...@linaro.org --- include/linux/time64.h | 13 + 1 file changed, 13 insertions(+) diff --git a/include/linux/time64.h b/include/linux/time64.h index a383147..3647bdd 100644 --- a/include/linux/time64.h +++ b/include/linux/time64.h @@ -18,6 +18,11 @@ struct timespec64 { }; #endif +struct itimerspec64 { + struct timespec64 it_interval; /* timer period */ + struct timespec64 it_value; /* timer expiration */ +}; + /* Parameters used to convert the timespec values: */ #define MSEC_PER_SEC 1000L #define USEC_PER_MSEC1000L @@ -187,4 +192,12 @@ static __always_inline void timespec64_add_ns(struct timespec64 *a, u64 ns) #endif +#define itimerspec64_to_itimerspec(its64) \ +#define itimerspec_to_itimerspec64(its) \ 1.) Make these static inlines please. These macros are not typesafe. 2.) Use pointers to the input value. Thanks. tglx ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 01/11] linux/time64.h:Introduce the 'struct itimerspec64' for 64bit
On Mon, 20 Apr 2015, Thomas Gleixner wrote: On Mon, 20 Apr 2015, Baolin Wang wrote: This patch introduces the 'struct itimerspec64' for 64bit to replace itimerspec, and also introduces the conversion methods: itimerspec64_to_itimerspec() and itimerspec_to_itimerspec64(), that makes itimerspec to ready for 2038 year. Signed-off-by: Baolin Wang baolin.w...@linaro.org --- include/linux/time64.h | 13 + 1 file changed, 13 insertions(+) diff --git a/include/linux/time64.h b/include/linux/time64.h index a383147..3647bdd 100644 --- a/include/linux/time64.h +++ b/include/linux/time64.h @@ -18,6 +18,11 @@ struct timespec64 { }; #endif +struct itimerspec64 { + struct timespec64 it_interval; /* timer period */ + struct timespec64 it_value; /* timer expiration */ +}; Aside of the macro mess. This really wants to be conditional on 64/32 but in the same way as we have the different implementations for timespec64. Your patch enforces a useless conversion from and to itimerspec64 even on 64 bit because the compiler cannot map the types. Sigh. timespec64 is a proper guidance here. Thanks, tglx ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH 01/11] linux/time64.h:Introduce the 'struct itimerspec64' for 64bit
This patch introduces the 'struct itimerspec64' for 64bit to replace itimerspec, and also introduces the conversion methods: itimerspec64_to_itimerspec() and itimerspec_to_itimerspec64(), that makes itimerspec to ready for 2038 year. Signed-off-by: Baolin Wang baolin.w...@linaro.org --- include/linux/time64.h | 13 + 1 file changed, 13 insertions(+) diff --git a/include/linux/time64.h b/include/linux/time64.h index a383147..3647bdd 100644 --- a/include/linux/time64.h +++ b/include/linux/time64.h @@ -18,6 +18,11 @@ struct timespec64 { }; #endif +struct itimerspec64 { + struct timespec64 it_interval; /* timer period */ + struct timespec64 it_value; /* timer expiration */ +}; + /* Parameters used to convert the timespec values: */ #define MSEC_PER_SEC 1000L #define USEC_PER_MSEC 1000L @@ -187,4 +192,12 @@ static __always_inline void timespec64_add_ns(struct timespec64 *a, u64 ns) #endif +#define itimerspec64_to_itimerspec(its64) \ + ({ (struct itimerspec){ .it_interval = timespec64_to_timespec((its64).it_interval), \ + .it_value = timespec64_to_timespec((its64).it_value) }; }) + +#define itimerspec_to_itimerspec64(its) \ + ({ (struct itimerspec64){ .it_interval = timespec_to_timespec64((its).it_interval), \ + .it_value = timespec_to_timespec64((its).it_value) }; }) + #endif /* _LINUX_TIME64_H */ -- 1.7.9.5 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev