aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2020-12-13 12:53:43 +0100
committerSimon Ser <contact@emersion.fr>2020-12-18 10:37:08 +0100
commitf0c1b32120563e6a9a770a458b397f0021b9e639 (patch)
treeb3ea26527a9db967ce7503d122fdab588f7f76d9
parent94fda895accd2538aa61ba4a0aad610750d797d1 (diff)
util/time: add timespec_from_nsec
-rw-r--r--include/util/time.h5
-rw-r--r--util/time.c5
2 files changed, 10 insertions, 0 deletions
diff --git a/include/util/time.h b/include/util/time.h
index 6b35ef5f..287698de 100644
--- a/include/util/time.h
+++ b/include/util/time.h
@@ -14,6 +14,11 @@ uint32_t get_current_time_msec(void);
int64_t timespec_to_msec(const struct timespec *a);
/**
+ * Convert nanoseconds to a timespec.
+ */
+void timespec_from_nsec(struct timespec *r, int64_t nsec);
+
+/**
* Subtracts timespec `b` from timespec `a`, and stores the difference in `r`.
*/
void timespec_sub(struct timespec *r, const struct timespec *a,
diff --git a/util/time.c b/util/time.c
index aed577de..e1bc2b5c 100644
--- a/util/time.c
+++ b/util/time.c
@@ -10,6 +10,11 @@ int64_t timespec_to_msec(const struct timespec *a) {
return (int64_t)a->tv_sec * 1000 + a->tv_nsec / 1000000;
}
+void timespec_from_nsec(struct timespec *r, int64_t nsec) {
+ r->tv_sec = nsec / NSEC_PER_SEC;
+ r->tv_nsec = nsec % NSEC_PER_SEC;
+}
+
uint32_t get_current_time_msec(void) {
struct timespec now;
clock_gettime(CLOCK_MONOTONIC, &now);