From 85d78af0cd8b809abc28491c46c648a242053044 Mon Sep 17 00:00:00 2001 From: David Timber Date: Tue, 31 Dec 2019 02:52:35 +1100 Subject: checkpoint --- src/proone_util.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'src/proone_util.c') diff --git a/src/proone_util.c b/src/proone_util.c index 118dc35..dc9e498 100644 --- a/src/proone_util.c +++ b/src/proone_util.c @@ -1,5 +1,13 @@ #include "proone_util.h" +#include + + +void proone_succeed_or_die (const int ret) { + if (ret < 0) { + abort(); + } +} void proone_rnd_alphanumeric_str (proone_rnd_engine_t *rnd_engine, char *str, const size_t len) { static const char SET[] = "qwertyuiopasdfghjklzxcvbnm0123456789"; @@ -22,3 +30,35 @@ void proone_rnd_alphanumeric_str (proone_rnd_engine_t *rnd_engine, char *str, co } } } + +void proone_empty_func () {} + +struct timespec proone_sub_timespec (const struct timespec *a, const struct timespec *b) { + struct timespec ret; + + if (a->tv_nsec < b->tv_nsec) { + ret.tv_sec = a->tv_sec - 1 - b->tv_sec; + ret.tv_nsec = 1000000000 + a->tv_nsec - b->tv_nsec; + } + else { + ret.tv_sec = a->tv_sec - b->tv_sec; + ret.tv_nsec = a->tv_nsec - b->tv_nsec; + } + + return ret; +} + +double proone_real_timespec (const struct timespec *ts) { + return (double)ts->tv_sec + (double)ts->tv_nsec / 1000000000.0; +} + +int proone_cmp_timespec (const struct timespec *a, const struct timespec *b) { + if (a->tv_sec < b->tv_sec) { + return -1; + } + else if (a->tv_sec > b->tv_sec) { + return 1; + } + + return a->tv_nsec < b->tv_nsec ? -1 : a->tv_nsec > b->tv_nsec ? 1 : 0; +} -- cgit