diff options
author | Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org> | 2015-12-21 14:17:52 +0200 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2015-12-29 14:07:52 +0300 |
commit | af3c4128805eaa188e2c683723dbf3d89de7ac52 (patch) | |
tree | 5f64f364d81c5bf0fb3bf3e9c44d130327d0ce1b /platform | |
parent | 983e8a8d3888230e229e1515c2816829d57c04c0 (diff) |
api: time: add global time API
This patch adds global time API and implements it in linux-generic.
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@linaro.org>
Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Diffstat (limited to 'platform')
-rw-r--r-- | platform/linux-generic/odp_time.c | 34 |
1 files changed, 27 insertions, 7 deletions
diff --git a/platform/linux-generic/odp_time.c b/platform/linux-generic/odp_time.c index 4807bc71d..6bb95fcc6 100644 --- a/platform/linux-generic/odp_time.c +++ b/platform/linux-generic/odp_time.c @@ -96,11 +96,28 @@ static inline void time_wait_until(odp_time_t time) } while (time_cmp(time, cur) > 0); } +static inline uint64_t time_local_res(void) +{ + int ret; + struct timespec tres; + + ret = clock_getres(CLOCK_MONOTONIC_RAW, &tres); + if (odp_unlikely(ret != 0)) + ODP_ABORT("clock_getres failed\n"); + + return ODP_TIME_SEC_IN_NS / (uint64_t)tres.tv_nsec; +} + odp_time_t odp_time_local(void) { return time_local(); } +odp_time_t odp_time_global(void) +{ + return time_local(); +} + odp_time_t odp_time_diff(odp_time_t t2, odp_time_t t1) { return time_diff(t2, t1); @@ -116,6 +133,11 @@ odp_time_t odp_time_local_from_ns(uint64_t ns) return time_local_from_ns(ns); } +odp_time_t odp_time_global_from_ns(uint64_t ns) +{ + return time_local_from_ns(ns); +} + int odp_time_cmp(odp_time_t t2, odp_time_t t1) { return time_cmp(t2, t1); @@ -128,14 +150,12 @@ odp_time_t odp_time_sum(odp_time_t t1, odp_time_t t2) uint64_t odp_time_local_res(void) { - int ret; - struct timespec tres; - - ret = clock_getres(CLOCK_MONOTONIC_RAW, &tres); - if (odp_unlikely(ret != 0)) - ODP_ABORT("clock_getres failed\n"); + return time_local_res(); +} - return ODP_TIME_SEC_IN_NS / (uint64_t)tres.tv_nsec; +uint64_t odp_time_global_res(void) +{ + return time_local_res(); } void odp_time_wait_ns(uint64_t ns) |