From: Pekka Paalanen <[email protected]> Copyright is set according to the moved code from compositor.c.
Signed-off-by: Pekka Paalanen <[email protected]> --- Makefile.am | 1 + shared/timespec-util.h | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/compositor.c | 21 +---------------- 3 files changed, 63 insertions(+), 20 deletions(-) create mode 100644 shared/timespec-util.h diff --git a/Makefile.am b/Makefile.am index f493d16..26c246b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -89,6 +89,7 @@ weston_SOURCES = \ shared/helpers.h \ shared/matrix.c \ shared/matrix.h \ + shared/timespec-util.h \ shared/zalloc.h \ shared/platform.h \ src/weston-egl-ext.h diff --git a/shared/timespec-util.h b/shared/timespec-util.h new file mode 100644 index 0000000..0e05efc --- /dev/null +++ b/shared/timespec-util.h @@ -0,0 +1,61 @@ +/* + * Copyright © 2014 - 2015 Collabora, Ltd. + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice (including the + * next paragraph) shall be included in all copies or substantial + * portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#ifndef TIMESPEC_UTIL_H +#define TIMESPEC_UTIL_H + +#define NSEC_PER_SEC 1000000000 + +/* Subtract timespecs + * + * \param r[out] result: a - b + * \param a[in] operand + * \param b[in] operand + */ +static inline void +timespec_sub(struct timespec *r, + const struct timespec *a, const struct timespec *b) +{ + r->tv_sec = a->tv_sec - b->tv_sec; + r->tv_nsec = a->tv_nsec - b->tv_nsec; + if (r->tv_nsec < 0) { + r->tv_sec--; + r->tv_nsec += NSEC_PER_SEC; + } +} + +/* Convert timespec to nanoseconds + * + * \param a timespec + * \return nanoseconds + */ +static inline int64_t +timespec_to_nsec(const struct timespec *a) +{ + return (int64_t)a->tv_sec * NSEC_PER_SEC + a->tv_nsec; +} + + +#endif /* TIMESPEC_UTIL_H */ diff --git a/src/compositor.c b/src/compositor.c index 1e09163..6f852e1 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -63,31 +63,12 @@ #include "presentation_timing-server-protocol.h" #include "shared/helpers.h" #include "shared/os-compatibility.h" +#include "shared/timespec-util.h" #include "git-version.h" #include "version.h" #define DEFAULT_REPAINT_WINDOW 7 /* milliseconds */ -#define NSEC_PER_SEC 1000000000 - -static void -timespec_sub(struct timespec *r, - const struct timespec *a, const struct timespec *b) -{ - r->tv_sec = a->tv_sec - b->tv_sec; - r->tv_nsec = a->tv_nsec - b->tv_nsec; - if (r->tv_nsec < 0) { - r->tv_sec--; - r->tv_nsec += NSEC_PER_SEC; - } -} - -static int64_t -timespec_to_nsec(const struct timespec *a) -{ - return (int64_t)a->tv_sec * NSEC_PER_SEC + a->tv_nsec; -} - static struct wl_list child_process_list; static struct weston_compositor *segv_compositor; -- 2.3.6 _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
