summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.de.marchi@gmail.com>2022-06-03 14:50:43 -0700
committerLucas De Marchi <lucas.de.marchi@gmail.com>2022-06-26 23:23:46 -0700
commit5622f1dae10cf393bc1b142573ce5bf446334816 (patch)
tree94ad17a8f4b10f4f6f12262ea4e1c6916f9f976f
parent2ab4fbcb77aec709261a07d51c3175153c2a4dca (diff)
downloadkmod-5622f1dae10cf393bc1b142573ce5bf446334816.tar.gz
kmod-5622f1dae10cf393bc1b142573ce5bf446334816.tar.bz2
kmod-5622f1dae10cf393bc1b142573ce5bf446334816.zip
util: Add time-related functions from testsuite
This will be useful in future not only to testsuite, but also to tools and library. Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
-rw-r--r--shared/util.c10
-rw-r--r--shared/util.h8
-rw-r--r--testsuite/testsuite.c14
3 files changed, 19 insertions, 13 deletions
diff --git a/shared/util.c b/shared/util.c
index b487b5f..aeb171f 100644
--- a/shared/util.c
+++ b/shared/util.c
@@ -466,6 +466,16 @@ unsigned long long ts_usec(const struct timespec *ts)
(unsigned long long) ts->tv_nsec / NSEC_PER_USEC;
}
+unsigned long long now_usec(void)
+{
+ struct timespec ts;
+
+ if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0)
+ return 0;
+
+ return ts_usec(&ts);
+}
+
unsigned long long stat_mstamp(const struct stat *st)
{
#ifdef HAVE_STRUCT_STAT_ST_MTIM
diff --git a/shared/util.h b/shared/util.h
index c6a31df..734a523 100644
--- a/shared/util.h
+++ b/shared/util.h
@@ -7,6 +7,7 @@
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
+#include <time.h>
#include <shared/macro.h>
@@ -42,7 +43,14 @@ char *path_make_absolute_cwd(const char *p) _must_check_ __attribute__((nonnull(
int mkdir_p(const char *path, int len, mode_t mode);
int mkdir_parents(const char *path, mode_t mode);
unsigned long long stat_mstamp(const struct stat *st);
+
+/* time-related functions
+ * ************************************************************************ */
+#define USEC_PER_SEC 1000000ULL
+#define USEC_PER_MSEC 1000ULL
+
unsigned long long ts_usec(const struct timespec *ts);
+unsigned long long now_usec(void);
/* endianess and alignments */
/* ************************************************************************ */
diff --git a/testsuite/testsuite.c b/testsuite/testsuite.c
index 05df553..6a2d296 100644
--- a/testsuite/testsuite.c
+++ b/testsuite/testsuite.c
@@ -51,6 +51,7 @@ static const struct option options[] = {
};
#define OVERRIDE_LIBDIR ABS_TOP_BUILDDIR "/testsuite/.libs/"
+#define TEST_TIMEOUT_USEC 2 * USEC_PER_SEC
struct _env_config {
const char *key;
@@ -62,19 +63,6 @@ struct _env_config {
[TC_DELETE_MODULE_RETCODES] = { S_TC_DELETE_MODULE_RETCODES, OVERRIDE_LIBDIR "delete_module.so" },
};
-#define USEC_PER_SEC 1000000ULL
-#define USEC_PER_MSEC 1000ULL
-#define TEST_TIMEOUT_USEC 2 * USEC_PER_SEC
-static unsigned long long now_usec(void)
-{
- struct timespec ts;
-
- if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0)
- return 0;
-
- return ts_usec(&ts);
-}
-
static void help(void)
{
const struct option *itr;