aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--platform/linux-generic/odp_timer.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/platform/linux-generic/odp_timer.c b/platform/linux-generic/odp_timer.c
index 24490763c..8219c59a2 100644
--- a/platform/linux-generic/odp_timer.c
+++ b/platform/linux-generic/odp_timer.c
@@ -1453,6 +1453,39 @@ uint64_t odp_timer_current_tick(odp_timer_pool_t tpid)
return current_nsec(tp);
}
+int odp_timer_sample_ticks(odp_timer_pool_t timer_pool[], uint64_t tick[], uint64_t clk_count[],
+ int num)
+{
+ timer_pool_t *tp[MAX_TIMER_POOLS];
+ odp_time_t now;
+ int i;
+
+ if (num <= 0 || num > MAX_TIMER_POOLS) {
+ _ODP_ERR("Bad number of timer pools: %i\n", num);
+ return -1;
+ }
+
+ for (i = 0; i < num; i++) {
+ if (odp_unlikely(timer_pool[i] == ODP_TIMER_POOL_INVALID)) {
+ _ODP_ERR("Invalid timer pool\n");
+ return -1;
+ }
+
+ tp[i] = timer_pool_from_hdl(timer_pool[i]);
+ }
+
+ now = odp_time_global();
+
+ for (i = 0; i < num; i++) {
+ tick[i] = time_nsec(tp[i], now);
+
+ if (clk_count)
+ clk_count[i] = tick[i];
+ }
+
+ return 0;
+}
+
int odp_timer_pool_info(odp_timer_pool_t tpid, odp_timer_pool_info_t *tp_info)
{
timer_pool_t *tp;