/* Teardown when timer is freed */ static void timer_fini(odp_timer *tim, tick_buf_t *tb) { ODP_ASSERT(tb->exp_tck.v == TMO_UNUSED); ODP_ASSERT(tb->tmo_buf == ODP_BUFFER_INVALID); tim->queue = ODP_QUEUE_INVALID; tim->user_ptr = NULL; }
void odp_buffer_free(odp_buffer_t buf) { odp_buffer_hdr_t *buf_hdr = odp_buf_to_hdr(buf); pool_entry_t *pool = odp_buf_to_pool(buf_hdr); ODP_ASSERT(buf_hdr->allocator != ODP_FREEBUF); if (odp_unlikely(pool->s.low_wm_assert)) ret_buf(&pool->s, buf_hdr); else ret_local_buf(&pool->s.local_cache[local_id], buf_hdr); }
static inline void set_next_free(odp_timer *tim, uint32_t nf) { ODP_ASSERT(tim->queue == ODP_QUEUE_INVALID); /* Reusing 'queue' for next free index */ tim->queue = _odp_cast_scalar(odp_queue_t, nf); }