Add a helper function to check if a struct timespec is zero. This helper
will be used in the upcoming commits to transition the Weston codebase
to struct timespec.
Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
#include <stdint.h>
#include <assert.h>
#include <time.h>
+#include <stdbool.h>
#define NSEC_PER_SEC 1000000000
return timespec_sub_to_nsec(a, b) / 1000000;
}
+/* Check if a timespec is zero
+ *
+ * \param a timespec
+ * \return whether the timespec is zero
+ */
+static inline bool
+timespec_is_zero(const struct timespec *a)
+{
+ return a->tv_sec == 0 && a->tv_nsec == 0;
+}
+
/* Convert milli-Hertz to nanoseconds
*
* \param mhz frequency in mHz, not zero
b.tv_nsec = 1000000L;
ZUC_ASSERT_EQ((998 * 1000) + 1, timespec_sub_to_msec(&a, &b));
}
+
+ZUC_TEST(timespec_test, timespec_is_zero)
+{
+ struct timespec zero = { 0 };
+ struct timespec non_zero_sec = { .tv_sec = 1, .tv_nsec = 0 };
+ struct timespec non_zero_nsec = { .tv_sec = 0, .tv_nsec = 1 };
+
+ ZUC_ASSERT_TRUE(timespec_is_zero(&zero));
+ ZUC_ASSERT_FALSE(timespec_is_zero(&non_zero_nsec));
+ ZUC_ASSERT_FALSE(timespec_is_zero(&non_zero_sec));
+}