2015-04-30 08:12:22

by Baolin Wang

[permalink] [raw]
Subject: [PATCH v2 04/15] posix timers:Introduce the 64bit methods with timespec64 type for k_clock structure

This patch introduces the new methods with timespec64/itimerspec64 type for k_clcok
structure,converts the timepsec type to timespec64 type in k_clock structure and
converts the itimerspec type to itimerspec64 type to ready for 2038 issue.

Signed-off-by: Baolin Wang <[email protected]>
---
include/linux/posix-timers.h | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/include/linux/posix-timers.h b/include/linux/posix-timers.h
index 907f3fd..35786c5 100644
--- a/include/linux/posix-timers.h
+++ b/include/linux/posix-timers.h
@@ -98,9 +98,13 @@ struct k_itimer {

struct k_clock {
int (*clock_getres) (const clockid_t which_clock, struct timespec *tp);
+ int (*clock_getres64) (const clockid_t which_clock, struct timespec64 *tp);
int (*clock_set) (const clockid_t which_clock,
const struct timespec *tp);
+ int (*clock_set64) (const clockid_t which_clock,
+ const struct timespec64 *tp);
int (*clock_get) (const clockid_t which_clock, struct timespec * tp);
+ int (*clock_get64) (const clockid_t which_clock, struct timespec64 *tp);
int (*clock_adj) (const clockid_t which_clock, struct timex *tx);
int (*timer_create) (struct k_itimer *timer);
int (*nsleep) (const clockid_t which_clock, int flags,
@@ -109,10 +113,15 @@ struct k_clock {
int (*timer_set) (struct k_itimer * timr, int flags,
struct itimerspec * new_setting,
struct itimerspec * old_setting);
+ int (*timer_set64) (struct k_itimer *timr, int flags,
+ struct itimerspec64 *new_setting,
+ struct itimerspec64 *old_setting);
int (*timer_del) (struct k_itimer * timr);
#define TIMER_RETRY 1
void (*timer_get) (struct k_itimer * timr,
struct itimerspec * cur_setting);
+ void (*timer_get64) (struct k_itimer *timr,
+ struct itimerspec64 *cur_setting);
};

extern struct k_clock clock_posix_cpu;
--
1.7.9.5


2015-05-05 13:31:37

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH v2 04/15] posix timers:Introduce the 64bit methods with timespec64 type for k_clock structure

On Thu, 30 Apr 2015, Baolin Wang wrote:
> diff --git a/include/linux/posix-timers.h b/include/linux/posix-timers.h
> index 907f3fd..35786c5 100644
> --- a/include/linux/posix-timers.h
> +++ b/include/linux/posix-timers.h
> @@ -98,9 +98,13 @@ struct k_itimer {
>
> struct k_clock {
> int (*clock_getres) (const clockid_t which_clock, struct timespec *tp);
> + int (*clock_getres64) (const clockid_t which_clock, struct timespec64 *tp);
> int (*clock_set) (const clockid_t which_clock,
> const struct timespec *tp);
> + int (*clock_set64) (const clockid_t which_clock,
> + const struct timespec64 *tp);
> int (*clock_get) (const clockid_t which_clock, struct timespec * tp);
> + int (*clock_get64) (const clockid_t which_clock, struct timespec64 *tp);
> int (*clock_adj) (const clockid_t which_clock, struct timex *tx);
> int (*timer_create) (struct k_itimer *timer);
> int (*nsleep) (const clockid_t which_clock, int flags,
> @@ -109,10 +113,15 @@ struct k_clock {
> int (*timer_set) (struct k_itimer * timr, int flags,
> struct itimerspec * new_setting,
> struct itimerspec * old_setting);
> + int (*timer_set64) (struct k_itimer *timr, int flags,
> + struct itimerspec64 *new_setting,
> + struct itimerspec64 *old_setting);
> int (*timer_del) (struct k_itimer * timr);
> #define TIMER_RETRY 1
> void (*timer_get) (struct k_itimer * timr,
> struct itimerspec * cur_setting);
> + void (*timer_get64) (struct k_itimer *timr,
> + struct itimerspec64 *cur_setting);

I asked you last time to provide a conversion for a single instance
first and I gave you even step by step instructions.

But you insist on resending the whole mess in one go. Try again.

Thanks,

tglx

2015-05-06 08:06:50

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH v2 04/15] posix timers:Introduce the 64bit methods with timespec64 type for k_clock structure

On Wed, 6 May 2015, Baolin Wang wrote:
> On 5 May 2015 at 21:31, Thomas Gleixner <[email protected]> wrote:
>
> > On Thu, 30 Apr 2015, Baolin Wang wrote:
> > > diff --git a/include/linux/posix-timers.h b/include/linux/posix-timers.h
> > > index 907f3fd..35786c5 100644
> > > --- a/include/linux/posix-timers.h
> > > +++ b/include/linux/posix-timers.h
> > > @@ -98,9 +98,13 @@ struct k_itimer {
> > >
> > > struct k_clock {
> > > int (*clock_getres) (const clockid_t which_clock, struct timespec
> > *tp);
> > > + int (*clock_getres64) (const clockid_t which_clock, struct
> > timespec64 *tp);
> > > int (*clock_set) (const clockid_t which_clock,
> > > const struct timespec *tp);
> > > + int (*clock_set64) (const clockid_t which_clock,
> > > + const struct timespec64 *tp);
> > > int (*clock_get) (const clockid_t which_clock, struct timespec *
> > tp);
> > > + int (*clock_get64) (const clockid_t which_clock, struct timespec64
> > *tp);
> > > int (*clock_adj) (const clockid_t which_clock, struct timex *tx);
> > > int (*timer_create) (struct k_itimer *timer);
> > > int (*nsleep) (const clockid_t which_clock, int flags,
> > > @@ -109,10 +113,15 @@ struct k_clock {
> > > int (*timer_set) (struct k_itimer * timr, int flags,
> > > struct itimerspec * new_setting,
> > > struct itimerspec * old_setting);
> > > + int (*timer_set64) (struct k_itimer *timr, int flags,
> > > + struct itimerspec64 *new_setting,
> > > + struct itimerspec64 *old_setting);
> > > int (*timer_del) (struct k_itimer * timr);
> > > #define TIMER_RETRY 1
> > > void (*timer_get) (struct k_itimer * timr,
> > > struct itimerspec * cur_setting);
> > > + void (*timer_get64) (struct k_itimer *timr,
> > > + struct itimerspec64 *cur_setting);
> >
> > I asked you last time to provide a conversion for a single instance
> > first and I gave you even step by step instructions.
> >
> > But you insist on resending the whole mess in one go. Try again.
> >
> > Thanks,
> >
> > tglx
> >
>
> Hi Thomas,
>
> Thanks for your comments. I think i have followed your instructions
> to convert the syscall functions in patch 5 and patch 6.
>
> And i have confusions about the "a single instance first", could you
> explain that in detail? Thanks a lot.

Single function, single syscall. Not a wholesale conversion of the
world and some more.