Several test implement the same helpers. Move it to a common header to avoid code duplication. Signed-off-by: Daniel Wagner <dwagner@xxxxxxx> --- src/cyclictest/cyclictest.c | 40 ------------------------------------- src/include/rt-utils.h | 40 +++++++++++++++++++++++++++++++++++++ src/pi_tests/pi_stress.c | 8 -------- src/signaltest/signaltest.c | 15 -------------- 4 files changed, 40 insertions(+), 63 deletions(-) diff --git a/src/cyclictest/cyclictest.c b/src/cyclictest/cyclictest.c index dd418939a0c2..ae1d64a46b21 100644 --- a/src/cyclictest/cyclictest.c +++ b/src/cyclictest/cyclictest.c @@ -86,9 +86,6 @@ extern int clock_nanosleep(clockid_t __clock_id, int __flags, struct timespec *__rem); #endif /* __UCLIBC__ */ -#define USEC_PER_SEC 1000000 -#define NSEC_PER_SEC 1000000000 - #define HIST_MAX 1000000 #define MODE_CYCLIC 0 @@ -291,43 +288,6 @@ enum { static int trace_fd = -1; static int tracemark_fd = -1; -static inline void tsnorm(struct timespec *ts) -{ - while (ts->tv_nsec >= NSEC_PER_SEC) { - ts->tv_nsec -= NSEC_PER_SEC; - ts->tv_sec++; - } -} - -static inline int tsgreater(struct timespec *a, struct timespec *b) -{ - return ((a->tv_sec > b->tv_sec) || - (a->tv_sec == b->tv_sec && a->tv_nsec > b->tv_nsec)); -} - -static inline int64_t calcdiff(struct timespec t1, struct timespec t2) -{ - int64_t diff = USEC_PER_SEC * (long long)((int) t1.tv_sec - (int) t2.tv_sec); - diff += ((int) t1.tv_nsec - (int) t2.tv_nsec) / 1000; - return diff; -} - -static inline int64_t calcdiff_ns(struct timespec t1, struct timespec t2) -{ - int64_t diff; - diff = NSEC_PER_SEC * (int64_t)((int) t1.tv_sec - (int) t2.tv_sec); - diff += ((int) t1.tv_nsec - (int) t2.tv_nsec); - return diff; -} - -static inline int64_t calctime(struct timespec t) -{ - int64_t time; - time = USEC_PER_SEC * t.tv_sec; - time += ((int) t.tv_nsec) / 1000; - return time; -} - /* * Raise the soft priority limit up to prio, if that is less than or equal * to the hard limit diff --git a/src/include/rt-utils.h b/src/include/rt-utils.h index 51489b408e6c..fdd790600d68 100644 --- a/src/include/rt-utils.h +++ b/src/include/rt-utils.h @@ -30,4 +30,44 @@ int parse_time_string(char *val); void enable_trace_mark(void); void tracemark(char *fmt, ...) __attribute__((format(printf, 1, 2))); +#define USEC_PER_SEC 1000000 +#define NSEC_PER_SEC 1000000000 + +static inline void tsnorm(struct timespec *ts) +{ + while (ts->tv_nsec >= NSEC_PER_SEC) { + ts->tv_nsec -= NSEC_PER_SEC; + ts->tv_sec++; + } +} + +static inline int tsgreater(struct timespec *a, struct timespec *b) +{ + return ((a->tv_sec > b->tv_sec) || + (a->tv_sec == b->tv_sec && a->tv_nsec > b->tv_nsec)); +} + +static inline int64_t calcdiff(struct timespec t1, struct timespec t2) +{ + int64_t diff = USEC_PER_SEC * (long long)((int) t1.tv_sec - (int) t2.tv_sec); + diff += ((int) t1.tv_nsec - (int) t2.tv_nsec) / 1000; + return diff; +} + +static inline int64_t calcdiff_ns(struct timespec t1, struct timespec t2) +{ + int64_t diff; + diff = NSEC_PER_SEC * (int64_t)((int) t1.tv_sec - (int) t2.tv_sec); + diff += ((int) t1.tv_nsec - (int) t2.tv_nsec); + return diff; +} + +static inline int64_t calctime(struct timespec t) +{ + int64_t time; + time = USEC_PER_SEC * t.tv_sec; + time += ((int) t.tv_nsec) / 1000; + return time; +} + #endif /* __RT_UTILS.H */ diff --git a/src/pi_tests/pi_stress.c b/src/pi_tests/pi_stress.c index eba21d7727bc..93d7044c9f22 100644 --- a/src/pi_tests/pi_stress.c +++ b/src/pi_tests/pi_stress.c @@ -519,14 +519,6 @@ int pending_interrupt(void) return interrupted = sigismember(&pending, SIGINT); } -static inline void tsnorm(struct timespec *ts) -{ - while (ts->tv_nsec >= NSEC_PER_SEC) { - ts->tv_nsec -= NSEC_PER_SEC; - ts->tv_sec++; - } -} - /* * this routine serves two purposes: * 1. report progress diff --git a/src/signaltest/signaltest.c b/src/signaltest/signaltest.c index b5c86c5635cb..42a70facc6b3 100644 --- a/src/signaltest/signaltest.c +++ b/src/signaltest/signaltest.c @@ -69,21 +69,6 @@ static int shutdown; static int tracelimit = 0; static int oldtrace = 0; -static inline void tsnorm(struct timespec *ts) -{ - while (ts->tv_nsec >= NSEC_PER_SEC) { - ts->tv_nsec -= NSEC_PER_SEC; - ts->tv_sec++; - } -} - -static inline long calcdiff(struct timespec t1, struct timespec t2) -{ - long diff; - diff = USEC_PER_SEC * ((int) t1.tv_sec - (int) t2.tv_sec); - diff += ((int) t1.tv_nsec - (int) t2.tv_nsec) / 1000; - return diff; -} /* * signal thread -- 2.28.0