src/dpdk/lib/librte_mbuf/rte_mbuf.c
static void
rte_pktmbuf_free_pinned_extmem(void *addr, void *opaque)
{
	struct rte_mbuf *m = opaque;

	RTE_SET_USED(addr);
	RTE_ASSERT(RTE_MBUF_HAS_EXTBUF(m));
	RTE_ASSERT(RTE_MBUF_HAS_PINNED_EXTBUF(m));
	RTE_ASSERT(m->shinfo->fcb_opaque == m);

	rte_mbuf_ext_refcnt_set(m->shinfo, 1);
	m->ol_flags = EXT_ATTACHED_MBUF;
	if (m->next != NULL) {
		m->next = NULL;
		m->nb_segs = 1;
	}
	rte_mbuf_raw_free(m);
}
/*
 * @internal The callback routine called when reference counter in shinfo
 * for mbufs with pinned external buffer reaches zero. It means there is
 * no more reference to buffer backing mbuf and this one should be freed.
 * This routine is called for the regular (not with pinned external or
 * indirect buffer) mbufs on detaching from the mbuf with pinned external
 * buffer.
 */
@internal The callback routine called when reference counter in shinfo
for mbufs with pinned external buffer reaches zero. It means there is
no more reference to buffer backing mbuf and this one should be freed.
This routine is called for the regular (not with pinned external or
indirect buffer) mbufs on detaching from the mbuf with pinned external
buffer.
@internal The callback routine called when reference counter in shinfo for mbufs with pinned external buffer reaches zero . It means there is no more reference to buffer backing mbuf and this one should be freed . This routine is called for the regular ( not with pinned external or indirect buffer ) mbufs on detaching from the mbuf with pinned external buffer .
static void
rte_pktmbuf_free_pinned_extmem(void *addr, void *opaque)
{
	struct rte_mbuf *m = opaque;
	RTE_SET_USED(addr);
	RTE_ASSERT(RTE_MBUF_HAS_EXTBUF(m));
	RTE_ASSERT(RTE_MBUF_HAS_PINNED_EXTBUF(m));
	RTE_ASSERT(m->shinfo->fcb_opaque == m);
	rte_mbuf_ext_refcnt_set(m->shinfo, 1);
	m->ol_flags = EXT_ATTACHED_MBUF;
	if (m->next != NULL) {
		m->next = NULL;
		m->nb_segs = 1;
	}
	rte_mbuf_raw_free(m);
}
static void rte_pktmbuf_free_pinned_extmem ( void * addr , void * opaque ) { struct rte_mbuf * m = opaque ; RTE_SET_USED ( addr ) ; RTE_ASSERT ( RTE_MBUF_HAS_EXTBUF ( m ) ) ; RTE_ASSERT ( RTE_MBUF_HAS_PINNED_EXTBUF ( m ) ) ; RTE_ASSERT ( m -> shinfo -> fcb_opaque == m ) ; rte_mbuf_ext_refcnt_set ( m -> shinfo , 1 ) ; m -> ol_flags = EXT_ATTACHED_MBUF ; if ( m -> next != NULL ) { m -> next = NULL ; m -> nb_segs = 1 ; } rte_mbuf_raw_free ( m ) ; }
@internal The callback routine called when reference counter in shinfo
 for mbufs with pinned external buffer reaches zero.
@internal The callback routine called when reference counter in shinfo for mbufs with pinned external buffer reaches zero .