diff options
author | David Timber <david@lyset.snart.me> | 2019-12-31 02:52:35 +1100 |
---|---|---|
committer | David Timber <david@lyset.snart.me> | 2019-12-31 02:52:35 +1100 |
commit | 85d78af0cd8b809abc28491c46c648a242053044 (patch) | |
tree | 3205ee7fce91644b08b61dac624fc9cab448e6a1 /src/proone_util.c | |
parent | f765952dc8b77ad36e4f624086441d290e82bf66 (diff) |
checkpoint
Diffstat (limited to 'src/proone_util.c')
-rw-r--r-- | src/proone_util.c | 40 |
1 files changed, 40 insertions, 0 deletions
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 <stdlib.h> + + +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; +} |