/* SPDX-License-Identifier: LGPL-2.1-only */ /* * The Rin Library – time module * * Copyright (C) 2017-2019 Gediminas Jakutis */ #ifndef LIBRIN_TIME_INCLUDED #define LIBRIN_TIME_INCLUDED #include /* benchmarking related */ struct rin_bench_result { struct timespec wall; struct timeval system; struct timeval user; struct timeval total; }; int rin_bench_start(void); int rin_bench_stop(struct rin_bench_result *res); /* time data types related */ struct timespec rin_time_add(const struct timespec * const a, const struct timespec * const b); struct timespec rin_time_sub(const struct timespec * const a, const struct timespec * const b); struct timespec rin_time_normalize(const struct timespec * const t); struct timeval rin_timeval_add(const struct timeval * const a, const struct timeval * const b); struct timeval rin_timeval_sub(const struct timeval * const a, const struct timeval * const b); struct timeval rin_timeval_normalize(const struct timeval * const t); long int rin_time_cmp(const struct timespec * const a, const struct timespec * const b); long int rin_timeval_cmp(const struct timeval * const a, const struct timeval * const b); unsigned int rin_time_cmp_less(const struct timespec * const a, const struct timespec * const b); unsigned int rin_time_cmp_more(const struct timespec * const a, const struct timespec * const b); unsigned int rin_time_cmp_lessequal(const struct timespec * const a, const struct timespec * const b); unsigned int rin_time_cmp_moreequal(const struct timespec * const a, const struct timespec * const b); unsigned int rin_time_cmp_equal(const struct timespec * const a, const struct timespec * const b); unsigned int rin_time_cmp_nonequal(const struct timespec * const a, const struct timespec * const b); unsigned int rin_timeval_cmp_less(const struct timeval * const a, const struct timeval * const b); unsigned int rin_timeval_cmp_more(const struct timeval * const a, const struct timeval * const b); unsigned int rin_timeval_cmp_lessequal(const struct timeval * const a, const struct timeval * const b); unsigned int rin_timeval_cmp_moreequal(const struct timeval * const a, const struct timeval * const b); unsigned int rin_timeval_cmp_equal(const struct timeval * const a, const struct timeval * const b); unsigned int rin_timeval_cmp_nonequal(const struct timeval * const a, const struct timeval * const b); #endif /* LIBRIN_TIME_INCLUDED */