posix-clocks: Rename the clock_get() callback to clock_get_timespec()
authorAndrei Vagin <avagin@gmail.com>
Tue, 12 Nov 2019 01:26:54 +0000 (01:26 +0000)
committerThomas Gleixner <tglx@linutronix.de>
Tue, 14 Jan 2020 11:20:49 +0000 (12:20 +0100)
The upcoming support for time namespaces requires to have access to:

 - The time in a task's time namespace for sys_clock_gettime()
 - The time in the root name space for common_timer_get()

That adds a valid reason to finally implement a separate callback which
returns the time in ktime_t format, rather than in (struct timespec).

Rename the clock_get() callback to clock_get_timespec() as a preparation
for introducing clock_get_ktime().

Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Co-developed-by: Dmitry Safonov <dima@arista.com>
Signed-off-by: Andrei Vagin <avagin@gmail.com>
Signed-off-by: Dmitry Safonov <dima@arista.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20191112012724.250792-6-dima@arista.com
kernel/time/alarmtimer.c
kernel/time/posix-clock.c
kernel/time/posix-cpu-timers.c
kernel/time/posix-timers.c
kernel/time/posix-timers.h

index 451f9d0..8523df7 100644 (file)
@@ -657,7 +657,7 @@ static int alarm_clock_getres(const clockid_t which_clock, struct timespec64 *tp
 }
 
 /**
- * alarm_clock_get - posix clock_get interface
+ * alarm_clock_get - posix clock_get_timespec interface
  * @which_clock: clockid
  * @tp: timespec to fill.
  *
@@ -837,7 +837,7 @@ static int alarm_timer_nsleep(const clockid_t which_clock, int flags,
 
 const struct k_clock alarm_clock = {
        .clock_getres           = alarm_clock_getres,
-       .clock_get              = alarm_clock_get,
+       .clock_get_timespec     = alarm_clock_get,
        .timer_create           = alarm_timer_create,
        .timer_set              = common_timer_set,
        .timer_del              = common_timer_del,
index 200fb2d..77c0c23 100644 (file)
@@ -310,8 +310,8 @@ out:
 }
 
 const struct k_clock clock_posix_dynamic = {
-       .clock_getres   = pc_clock_getres,
-       .clock_set      = pc_clock_settime,
-       .clock_get      = pc_clock_gettime,
-       .clock_adj      = pc_clock_adjtime,
+       .clock_getres           = pc_clock_getres,
+       .clock_set              = pc_clock_settime,
+       .clock_get_timespec     = pc_clock_gettime,
+       .clock_adj              = pc_clock_adjtime,
 };
index 42d512f..8ff6da7 100644 (file)
@@ -1391,26 +1391,26 @@ static int thread_cpu_timer_create(struct k_itimer *timer)
 }
 
 const struct k_clock clock_posix_cpu = {
-       .clock_getres   = posix_cpu_clock_getres,
-       .clock_set      = posix_cpu_clock_set,
-       .clock_get      = posix_cpu_clock_get,
-       .timer_create   = posix_cpu_timer_create,
-       .nsleep         = posix_cpu_nsleep,
-       .timer_set      = posix_cpu_timer_set,
-       .timer_del      = posix_cpu_timer_del,
-       .timer_get      = posix_cpu_timer_get,
-       .timer_rearm    = posix_cpu_timer_rearm,
+       .clock_getres           = posix_cpu_clock_getres,
+       .clock_set              = posix_cpu_clock_set,
+       .clock_get_timespec     = posix_cpu_clock_get,
+       .timer_create           = posix_cpu_timer_create,
+       .nsleep                 = posix_cpu_nsleep,
+       .timer_set              = posix_cpu_timer_set,
+       .timer_del              = posix_cpu_timer_del,
+       .timer_get              = posix_cpu_timer_get,
+       .timer_rearm            = posix_cpu_timer_rearm,
 };
 
 const struct k_clock clock_process = {
-       .clock_getres   = process_cpu_clock_getres,
-       .clock_get      = process_cpu_clock_get,
-       .timer_create   = process_cpu_timer_create,
-       .nsleep         = process_cpu_nsleep,
+       .clock_getres           = process_cpu_clock_getres,
+       .clock_get_timespec     = process_cpu_clock_get,
+       .timer_create           = process_cpu_timer_create,
+       .nsleep                 = process_cpu_nsleep,
 };
 
 const struct k_clock clock_thread = {
-       .clock_getres   = thread_cpu_clock_getres,
-       .clock_get      = thread_cpu_clock_get,
-       .timer_create   = thread_cpu_timer_create,
+       .clock_getres           = thread_cpu_clock_getres,
+       .clock_get_timespec     = thread_cpu_clock_get,
+       .timer_create           = thread_cpu_timer_create,
 };
index 0ec5b7a..44d4f9c 100644 (file)
@@ -667,7 +667,7 @@ void common_timer_get(struct k_itimer *timr, struct itimerspec64 *cur_setting)
         * The timespec64 based conversion is suboptimal, but it's not
         * worth to implement yet another callback.
         */
-       kc->clock_get(timr->it_clock, &ts64);
+       kc->clock_get_timespec(timr->it_clock, &ts64);
        now = timespec64_to_ktime(ts64);
 
        /*
@@ -781,7 +781,7 @@ static void common_hrtimer_arm(struct k_itimer *timr, ktime_t expires,
         * Posix magic: Relative CLOCK_REALTIME timers are not affected by
         * clock modifications, so they become CLOCK_MONOTONIC based under the
         * hood. See hrtimer_init(). Update timr->kclock, so the generic
-        * functions which use timr->kclock->clock_get() work.
+        * functions which use timr->kclock->clock_get_timespec() work.
         *
         * Note: it_clock stays unmodified, because the next timer_set() might
         * use ABSTIME, so it needs to switch back.
@@ -1067,7 +1067,7 @@ SYSCALL_DEFINE2(clock_gettime, const clockid_t, which_clock,
        if (!kc)
                return -EINVAL;
 
-       error = kc->clock_get(which_clock, &kernel_tp);
+       error = kc->clock_get_timespec(which_clock, &kernel_tp);
 
        if (!error && put_timespec64(&kernel_tp, tp))
                error = -EFAULT;
@@ -1149,7 +1149,7 @@ SYSCALL_DEFINE2(clock_gettime32, clockid_t, which_clock,
        if (!kc)
                return -EINVAL;
 
-       err = kc->clock_get(which_clock, &ts);
+       err = kc->clock_get_timespec(which_clock, &ts);
 
        if (!err && put_old_timespec32(&ts, tp))
                err = -EFAULT;
@@ -1261,7 +1261,7 @@ SYSCALL_DEFINE4(clock_nanosleep_time32, clockid_t, which_clock, int, flags,
 
 static const struct k_clock clock_realtime = {
        .clock_getres           = posix_get_hrtimer_res,
-       .clock_get              = posix_clock_realtime_get,
+       .clock_get_timespec     = posix_clock_realtime_get,
        .clock_set              = posix_clock_realtime_set,
        .clock_adj              = posix_clock_realtime_adj,
        .nsleep                 = common_nsleep,
@@ -1279,7 +1279,7 @@ static const struct k_clock clock_realtime = {
 
 static const struct k_clock clock_monotonic = {
        .clock_getres           = posix_get_hrtimer_res,
-       .clock_get              = posix_ktime_get_ts,
+       .clock_get_timespec     = posix_ktime_get_ts,
        .nsleep                 = common_nsleep,
        .timer_create           = common_timer_create,
        .timer_set              = common_timer_set,
@@ -1295,22 +1295,22 @@ static const struct k_clock clock_monotonic = {
 
 static const struct k_clock clock_monotonic_raw = {
        .clock_getres           = posix_get_hrtimer_res,
-       .clock_get              = posix_get_monotonic_raw,
+       .clock_get_timespec     = posix_get_monotonic_raw,
 };
 
 static const struct k_clock clock_realtime_coarse = {
        .clock_getres           = posix_get_coarse_res,
-       .clock_get              = posix_get_realtime_coarse,
+       .clock_get_timespec     = posix_get_realtime_coarse,
 };
 
 static const struct k_clock clock_monotonic_coarse = {
        .clock_getres           = posix_get_coarse_res,
-       .clock_get              = posix_get_monotonic_coarse,
+       .clock_get_timespec     = posix_get_monotonic_coarse,
 };
 
 static const struct k_clock clock_tai = {
        .clock_getres           = posix_get_hrtimer_res,
-       .clock_get              = posix_get_tai,
+       .clock_get_timespec     = posix_get_tai,
        .nsleep                 = common_nsleep,
        .timer_create           = common_timer_create,
        .timer_set              = common_timer_set,
@@ -1326,7 +1326,7 @@ static const struct k_clock clock_tai = {
 
 static const struct k_clock clock_boottime = {
        .clock_getres           = posix_get_hrtimer_res,
-       .clock_get              = posix_get_boottime,
+       .clock_get_timespec     = posix_get_boottime,
        .nsleep                 = common_nsleep,
        .timer_create           = common_timer_create,
        .timer_set              = common_timer_set,
index 897c29e..070611b 100644 (file)
@@ -6,8 +6,8 @@ struct k_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_get_timespec)(const clockid_t which_clock,
+                                     struct timespec64 *tp);
        int     (*clock_adj)(const clockid_t which_clock, struct __kernel_timex *tx);
        int     (*timer_create)(struct k_itimer *timer);
        int     (*nsleep)(const clockid_t which_clock, int flags,