shared: Add timespec_from_proto helper function

Add helper function to convert tv_sec_hi, tv_sec_lo, tv_nsec triplets,
used for sending high-resolution timestamp data over the wayland
protocol, to struct timespec values. Replace existing conversion code
with the helper function.

Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
This commit is contained in:
Alexandros Frantzis
2017-12-13 13:27:53 +02:00
committed by Pekka Paalanen
parent c83fdaa555
commit 787fa611de
4 changed files with 34 additions and 16 deletions
+15
View File
@@ -181,6 +181,21 @@ timespec_from_msec(struct timespec *a, int64_t b)
timespec_from_nsec(a, b * 1000000);
}
/* Convert protocol data to timespec
*
* \param a[out] timespec
* \param tv_sec_hi the high bytes of seconds part
* \param tv_sec_lo the low bytes of seconds part
* \param tv_nsec the nanoseconds part
*/
static inline void
timespec_from_proto(struct timespec *a, uint32_t tv_sec_hi,
uint32_t tv_sec_lo, uint32_t tv_nsec)
{
a->tv_sec = ((uint64_t)tv_sec_hi << 32) + tv_sec_lo;
a->tv_nsec = tv_nsec;
}
/* Check if a timespec is zero
*
* \param a timespec