]> git.ozlabs.org Git - ccan/blobdiff - ccan/time/time.c
ccan/io: add io_conn_exclusive and io_conn_out_exclusive.
[ccan] / ccan / time / time.c
index 54cb3f4b73ae601cf469592237bc165748593e4c..9810792280c775b2c2d49975739ae34c56af2b67 100644 (file)
@@ -3,7 +3,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
-#if !HAVE_CLOCK_GETTIME && !HAVE_CLOCK_GETTIME_IN_LIBRT
+#if !HAVE_CLOCK_GETTIME
 #include <sys/time.h>
 
 struct timeabs time_now(void)
@@ -23,7 +23,18 @@ struct timeabs time_now(void)
        clock_gettime(CLOCK_REALTIME, &ret.ts);
        return TIMEABS_CHECK(ret);
 }
-#endif /* HAVE_CLOCK_GETTIME || HAVE_CLOCK_GETTIME_IN_LIBRT */
+#endif /* HAVE_CLOCK_GETTIME */
+
+struct timemono time_mono(void)
+{
+       struct timemono ret;
+#if TIME_HAVE_MONOTONIC
+       clock_gettime(CLOCK_MONOTONIC, &ret.ts);
+#else /* Best we can do */
+       ret.ts = time_now().ts;
+#endif /* !HAVE_TIME_MONOTONIC */
+       return TIMEMONO_CHECK(ret);
+}
 
 struct timerel time_divide(struct timerel t, unsigned long div)
 {
@@ -117,3 +128,11 @@ struct timeabs timeabs_check(struct timeabs t, const char *abortstr)
        ret.ts = time_check_(t.ts, abortstr);
        return ret;
 }
+
+struct timemono timemono_check(struct timemono t, const char *abortstr)
+{
+       struct timemono ret;
+
+       ret.ts = time_check_(t.ts, abortstr);
+       return ret;
+}