src/dpdk/lib/librte_mbuf/rte_mbuf.h
static inline void
__rte_pktmbuf_free_extbuf(struct rte_mbuf *m)
{
	RTE_ASSERT(RTE_MBUF_HAS_EXTBUF(m));
	RTE_ASSERT(m->shinfo != NULL);

	if (rte_mbuf_ext_refcnt_update(m->shinfo, -1) == 0)
		m->shinfo->free_cb(m->buf_addr, m->shinfo->fcb_opaque);
}
/**
 * @internal used by rte_pktmbuf_detach().
 *
 * Decrement the reference counter of the external buffer. When the
 * reference counter becomes 0, the buffer is freed by pre-registered
 * callback.
 */
@internal used by rte_pktmbuf_detach().
Decrement the reference counter of the external buffer. When the
reference counter becomes 0, the buffer is freed by pre-registered
callback.
@internal used by rte_pktmbuf_detach () . Decrement the reference counter of the external buffer . When the reference counter becomes 0 the buffer is freed by pre - registered callback .
static inline void
__rte_pktmbuf_free_extbuf(struct rte_mbuf *m)
{
	RTE_ASSERT(RTE_MBUF_HAS_EXTBUF(m));
	RTE_ASSERT(m->shinfo != NULL);
	if (rte_mbuf_ext_refcnt_update(m->shinfo, -1) == 0)
		m->shinfo->free_cb(m->buf_addr, m->shinfo->fcb_opaque);
}
static inline void __rte_pktmbuf_free_extbuf ( struct rte_mbuf * m ) { RTE_ASSERT ( RTE_MBUF_HAS_EXTBUF ( m ) ) ; RTE_ASSERT ( m -> shinfo != NULL ) ; if ( rte_mbuf_ext_refcnt_update ( m -> shinfo , -1 ) == 0 ) m -> shinfo -> free_cb ( m -> buf_addr , m -> shinfo -> fcb_opaque ) ; }
@internal used by rte_pktmbuf_detach().
@internal used by rte_pktmbuf_detach () .