1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2021 Marvell.
5 #include "cnxk_eventdev.h"
8 cnxk_sso_updt_xae_cnt(struct cnxk_sso_evdev *dev, void *data,
14 case RTE_EVENT_TYPE_TIMER: {
15 struct cnxk_tim_ring *timr = data;
16 uint16_t *old_ring_ptr;
19 for (i = 0; i < dev->tim_adptr_ring_cnt; i++) {
20 if (timr->ring_id != dev->timer_adptr_rings[i])
22 if (timr->nb_timers == dev->timer_adptr_sz[i])
24 dev->adptr_xae_cnt -= dev->timer_adptr_sz[i];
25 dev->adptr_xae_cnt += timr->nb_timers;
26 dev->timer_adptr_sz[i] = timr->nb_timers;
31 dev->tim_adptr_ring_cnt++;
32 old_ring_ptr = dev->timer_adptr_rings;
33 old_sz_ptr = dev->timer_adptr_sz;
35 dev->timer_adptr_rings = rte_realloc(
36 dev->timer_adptr_rings,
37 sizeof(uint16_t) * dev->tim_adptr_ring_cnt, 0);
38 if (dev->timer_adptr_rings == NULL) {
39 dev->adptr_xae_cnt += timr->nb_timers;
40 dev->timer_adptr_rings = old_ring_ptr;
41 dev->tim_adptr_ring_cnt--;
45 dev->timer_adptr_sz = rte_realloc(
47 sizeof(uint64_t) * dev->tim_adptr_ring_cnt, 0);
49 if (dev->timer_adptr_sz == NULL) {
50 dev->adptr_xae_cnt += timr->nb_timers;
51 dev->timer_adptr_sz = old_sz_ptr;
52 dev->tim_adptr_ring_cnt--;
56 dev->timer_adptr_rings[dev->tim_adptr_ring_cnt - 1] =
58 dev->timer_adptr_sz[dev->tim_adptr_ring_cnt - 1] =
61 dev->adptr_xae_cnt += timr->nb_timers;