From 65e93c3b6f4f87e067a4866946501cc0f3cfd7d8 Mon Sep 17 00:00:00 2001 From: Michael Wright Date: Mon, 20 Apr 2015 15:06:01 +0100 Subject: Mark time conversion functions as constexpr Change-Id: I753c6975a8e1d78978c31175b2e1868eb374c442 --- include/utils/Timers.h | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/include/utils/Timers.h b/include/utils/Timers.h index d015421..54ec474 100644 --- a/include/utils/Timers.h +++ b/include/utils/Timers.h @@ -24,6 +24,8 @@ #include #include +#include + // ------------------------------------------------------------------ // C API @@ -33,46 +35,46 @@ extern "C" { typedef int64_t nsecs_t; // nano-seconds -static inline nsecs_t seconds_to_nanoseconds(nsecs_t secs) +static CONSTEXPR inline nsecs_t seconds_to_nanoseconds(nsecs_t secs) { return secs*1000000000; } -static inline nsecs_t milliseconds_to_nanoseconds(nsecs_t secs) +static CONSTEXPR inline nsecs_t milliseconds_to_nanoseconds(nsecs_t secs) { return secs*1000000; } -static inline nsecs_t microseconds_to_nanoseconds(nsecs_t secs) +static CONSTEXPR inline nsecs_t microseconds_to_nanoseconds(nsecs_t secs) { return secs*1000; } -static inline nsecs_t nanoseconds_to_seconds(nsecs_t secs) +static CONSTEXPR inline nsecs_t nanoseconds_to_seconds(nsecs_t secs) { return secs/1000000000; } -static inline nsecs_t nanoseconds_to_milliseconds(nsecs_t secs) +static CONSTEXPR inline nsecs_t nanoseconds_to_milliseconds(nsecs_t secs) { return secs/1000000; } -static inline nsecs_t nanoseconds_to_microseconds(nsecs_t secs) +static CONSTEXPR inline nsecs_t nanoseconds_to_microseconds(nsecs_t secs) { return secs/1000; } -static inline nsecs_t s2ns(nsecs_t v) {return seconds_to_nanoseconds(v);} -static inline nsecs_t ms2ns(nsecs_t v) {return milliseconds_to_nanoseconds(v);} -static inline nsecs_t us2ns(nsecs_t v) {return microseconds_to_nanoseconds(v);} -static inline nsecs_t ns2s(nsecs_t v) {return nanoseconds_to_seconds(v);} -static inline nsecs_t ns2ms(nsecs_t v) {return nanoseconds_to_milliseconds(v);} -static inline nsecs_t ns2us(nsecs_t v) {return nanoseconds_to_microseconds(v);} +static CONSTEXPR inline nsecs_t s2ns(nsecs_t v) {return seconds_to_nanoseconds(v);} +static CONSTEXPR inline nsecs_t ms2ns(nsecs_t v) {return milliseconds_to_nanoseconds(v);} +static CONSTEXPR inline nsecs_t us2ns(nsecs_t v) {return microseconds_to_nanoseconds(v);} +static CONSTEXPR inline nsecs_t ns2s(nsecs_t v) {return nanoseconds_to_seconds(v);} +static CONSTEXPR inline nsecs_t ns2ms(nsecs_t v) {return nanoseconds_to_milliseconds(v);} +static CONSTEXPR inline nsecs_t ns2us(nsecs_t v) {return nanoseconds_to_microseconds(v);} -static inline nsecs_t seconds(nsecs_t v) { return s2ns(v); } -static inline nsecs_t milliseconds(nsecs_t v) { return ms2ns(v); } -static inline nsecs_t microseconds(nsecs_t v) { return us2ns(v); } +static CONSTEXPR inline nsecs_t seconds(nsecs_t v) { return s2ns(v); } +static CONSTEXPR inline nsecs_t milliseconds(nsecs_t v) { return ms2ns(v); } +static CONSTEXPR inline nsecs_t microseconds(nsecs_t v) { return us2ns(v); } enum { SYSTEM_TIME_REALTIME = 0, // system-wide realtime clock -- cgit v1.1