Signed-off-by: Brian Brooks <brian.bro...@linaro.org>
---
 include/odp/api/spec/timer.h                  | 9 +++++++++
 platform/linux-generic/odp_timer.c            | 5 +++++
 test/common_plat/validation/api/timer/timer.c | 2 ++
 3 files changed, 16 insertions(+)

diff --git a/include/odp/api/spec/timer.h b/include/odp/api/spec/timer.h
index 540da44..0a6eca1 100644
--- a/include/odp/api/spec/timer.h
+++ b/include/odp/api/spec/timer.h
@@ -200,6 +200,15 @@ int odp_timer_pool_info(odp_timer_pool_t tpid,
 uint64_t odp_timer_pool_res(odp_timer_pool_t tpid);
 
 /**
+ * Get timer pool from timer
+ *
+ * @param tim Timer handle
+ *
+ * @return Timer pool handle
+ */
+odp_timer_pool_t odp_timer_pool_from_timer(odp_timer_t tim);
+
+/**
  * Allocate a timer
  *
  * Create a timer (allocating all necessary resources e.g. timeout event) from
diff --git a/platform/linux-generic/odp_timer.c 
b/platform/linux-generic/odp_timer.c
index d4b30b2..19b1e58 100644
--- a/platform/linux-generic/odp_timer.c
+++ b/platform/linux-generic/odp_timer.c
@@ -842,6 +842,11 @@ uint64_t odp_timer_pool_res(odp_timer_pool_t tpid)
        return tpid->param.res_ns;
 }
 
+odp_timer_pool_t odp_timer_pool_from_timer(odp_timer_t tim)
+{
+       return handle_to_tp(tim);
+}
+
 uint64_t odp_timer_pool_to_u64(odp_timer_pool_t tpid)
 {
        return _odp_pri(tpid);
diff --git a/test/common_plat/validation/api/timer/timer.c 
b/test/common_plat/validation/api/timer/timer.c
index a8321f3..66a0143 100644
--- a/test/common_plat/validation/api/timer/timer.c
+++ b/test/common_plat/validation/api/timer/timer.c
@@ -231,6 +231,8 @@ static void handle_tmo(odp_event_t ev, bool stale, uint64_t 
prev_tick)
        uint64_t tick = odp_timeout_tick(tmo);
        struct test_timer *ttp = odp_timeout_user_ptr(tmo);
 
+       CU_ASSERT(odp_timer_pool_from_timer(tim) == tp);
+
        if (tim == ODP_TIMER_INVALID)
                CU_FAIL("odp_timeout_timer() invalid timer");
        if (!ttp)
-- 
2.10.1

Reply via email to