The branch stable/13 has been updated by kib:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=af9521f635ef8f7223ddb68b33928d4320dc2357

commit af9521f635ef8f7223ddb68b33928d4320dc2357
Author:     Konstantin Belousov <k...@freebsd.org>
AuthorDate: 2021-06-22 23:58:32 +0000
Commit:     Konstantin Belousov <k...@freebsd.org>
CommitDate: 2021-06-30 04:41:58 +0000

    vdso gettimeofday: minor restructuring
    
    (cherry picked from commit e912fbe1675714aab0179999923c171615e78c07)
---
 lib/libc/sys/__vdso_gettimeofday.c | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/lib/libc/sys/__vdso_gettimeofday.c 
b/lib/libc/sys/__vdso_gettimeofday.c
index 32c416a54392..4c1f4bda23e1 100644
--- a/lib/libc/sys/__vdso_gettimeofday.c
+++ b/lib/libc/sys/__vdso_gettimeofday.c
@@ -32,6 +32,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/time.h>
 #include <sys/vdso.h>
 #include <errno.h>
+#include <stdbool.h>
 #include <strings.h>
 #include <time.h>
 #include <machine/atomic.h>
@@ -59,7 +60,7 @@ tc_delta(const struct vdso_timehands *th, u_int *delta)
  * is based on the kernel implementation.
  */
 static int
-binuptime(struct bintime *bt, struct vdso_timekeep *tk, int abs)
+binuptime(struct bintime *bt, struct vdso_timekeep *tk, bool abs)
 {
        struct vdso_timehands *th;
        uint32_t curr, gen;
@@ -123,7 +124,7 @@ __vdso_gettimeofday(struct timeval *tv, struct timezone *tz)
        }
        if (tk->tk_ver != VDSO_TK_VER_CURR)
                return (ENOSYS);
-       error = binuptime(&bt, tk, 1);
+       error = binuptime(&bt, tk, true);
        if (error != 0)
                return (error);
        bintime2timeval(&bt, tv);
@@ -135,7 +136,7 @@ int
 __vdso_clock_gettime(clockid_t clock_id, struct timespec *ts)
 {
        struct bintime bt;
-       int abs, error;
+       int error;
 
        if (tk == NULL) {
                error = _elf_aux_info(AT_TIMEKEEP, &tk, sizeof(tk));
@@ -149,7 +150,7 @@ __vdso_clock_gettime(clockid_t clock_id, struct timespec 
*ts)
        case CLOCK_REALTIME_PRECISE:
        case CLOCK_REALTIME_FAST:
        case CLOCK_SECOND:
-               abs = 1;
+               error = binuptime(&bt, tk, true);
                break;
        case CLOCK_MONOTONIC:
        case CLOCK_MONOTONIC_PRECISE:
@@ -157,12 +158,12 @@ __vdso_clock_gettime(clockid_t clock_id, struct timespec 
*ts)
        case CLOCK_UPTIME:
        case CLOCK_UPTIME_PRECISE:
        case CLOCK_UPTIME_FAST:
-               abs = 0;
+               error = getnanouptime(&bt, tk);
                break;
        default:
-               return (ENOSYS);
+               error = ENOSYS;
+               break;
        }
-       error = binuptime(&bt, tk, abs);
        if (error != 0)
                return (error);
        bintime2timespec(&bt, ts);
_______________________________________________
dev-commits-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all
To unsubscribe, send any mail to "dev-commits-src-all-unsubscr...@freebsd.org"

Reply via email to