Commit-ID:  30802945893bc944b5971b408b37511a03b54e5c
Gitweb:     http://git.kernel.org/tip/30802945893bc944b5971b408b37511a03b54e5c
Author:     Thomas Gleixner <[email protected]>
AuthorDate: Tue, 30 May 2017 23:15:45 +0200
Committer:  Thomas Gleixner <[email protected]>
CommitDate: Sun, 4 Jun 2017 15:40:25 +0200

posix-timers: Add timer_rearm() callback

Add a timer_rearm() callback which is used to make the rescheduling of
posix interval timers independent of the underlying clock implementation.

Signed-off-by: Thomas Gleixner <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: John Stultz <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]

---
 kernel/time/posix-timers.h | 33 ++++++++++++++++++---------------
 1 file changed, 18 insertions(+), 15 deletions(-)

diff --git a/kernel/time/posix-timers.h b/kernel/time/posix-timers.h
index ad2dbd2..02ffd1b 100644
--- a/kernel/time/posix-timers.h
+++ b/kernel/time/posix-timers.h
@@ -1,21 +1,24 @@
 #define TIMER_RETRY 1
 
 struct k_clock {
-       int (*clock_getres) (const clockid_t which_clock, struct timespec64 
*tp);
-       int (*clock_set) (const clockid_t which_clock,
-                         const struct timespec64 *tp);
-       int (*clock_get) (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,
-                      struct timespec64 *, struct timespec __user *);
-       long (*nsleep_restart) (struct restart_block *restart_block);
-       int (*timer_set) (struct k_itimer *timr, int flags,
-                         struct itimerspec64 *new_setting,
-                         struct itimerspec64 *old_setting);
-       int (*timer_del) (struct k_itimer *timr);
-       void (*timer_get) (struct k_itimer *timr,
-                          struct itimerspec64 *cur_setting);
+       int     (*clock_getres)(const clockid_t which_clock,
+                               struct timespec64 *tp);
+       int     (*clock_set)(const clockid_t which_clock,
+                            const struct timespec64 *tp);
+       int     (*clock_get)(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,
+                         struct timespec64 *, struct timespec __user *);
+       long    (*nsleep_restart)(struct restart_block *restart_block);
+       int     (*timer_set)(struct k_itimer *timr, int flags,
+                            struct itimerspec64 *new_setting,
+                            struct itimerspec64 *old_setting);
+       int     (*timer_del)(struct k_itimer *timr);
+       void    (*timer_get)(struct k_itimer *timr,
+                            struct itimerspec64 *cur_setting);
+       void    (*timer_rearm)(struct k_itimer *timr);
 };
 
 extern const struct k_clock clock_posix_cpu;

Reply via email to