Re: [PATCH 01/11] linux/time64.h:Introduce the 'struct itimerspec64' for 64bit

2015-04-21 Thread Baolin Wang
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

2015-04-20 Thread Baolin Wang
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

2015-04-20 Thread Sergei Shtylyov

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

2015-04-20 Thread Thomas Gleixner
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

2015-04-20 Thread Thomas Gleixner
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

2015-04-20 Thread Baolin Wang
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