aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-dpdk
diff options
context:
space:
mode:
authorMatias Elo <matias.elo@nokia.com>2023-06-28 13:20:11 +0300
committerMatias Elo <matias.elo@nokia.com>2023-08-08 09:54:40 +0300
commit0d3b1032759f8c7820549ce5b24841b2f4b3c53e (patch)
tree61bf645e2aa20c0102368b58987da4ceb0f83b26 /platform/linux-dpdk
parent7130826774c0092fcdfd5e53aeba63cabaf62964 (diff)
Port 3ea19c8cb "linux-gen: timer: implement odp_timer_sample_ticks()"
Port original commit from linux-generic. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Tuomas Taipale <tuomas.taipale@nokia.com>
Diffstat (limited to 'platform/linux-dpdk')
-rw-r--r--platform/linux-dpdk/odp_timer.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/platform/linux-dpdk/odp_timer.c b/platform/linux-dpdk/odp_timer.c
index 9104bb30d..4056018ae 100644
--- a/platform/linux-dpdk/odp_timer.c
+++ b/platform/linux-dpdk/odp_timer.c
@@ -807,6 +807,35 @@ uint64_t odp_timer_current_tick(odp_timer_pool_t tp)
return rte_get_timer_cycles();
}
+int odp_timer_sample_ticks(odp_timer_pool_t tp[], uint64_t tick[], uint64_t clk_count[], int num)
+{
+ uint64_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(tp[i] == ODP_TIMER_POOL_INVALID)) {
+ _ODP_ERR("Invalid timer pool\n");
+ return -1;
+ }
+ }
+
+ now = rte_get_timer_cycles();
+
+ for (i = 0; i < num; i++) {
+ tick[i] = now;
+
+ if (clk_count)
+ clk_count[i] = 0;
+ }
+
+ return 0;
+}
+
int odp_timer_pool_info(odp_timer_pool_t tp,
odp_timer_pool_info_t *info)
{