src/dpdk/lib/librte_mbuf/rte_mbuf.c
static void
__rte_pktmbuf_free_seg_via_array(struct rte_mbuf *m,
	struct rte_mbuf ** const pending, unsigned int * const nb_pending,
	const unsigned int pending_sz)
{
	m = rte_pktmbuf_prefree_seg(m);
	if (likely(m != NULL)) {
		if (*nb_pending == pending_sz ||
		    (*nb_pending > 0 && m->pool != pending[0]->pool)) {
			rte_mempool_put_bulk(pending[0]->pool,
					(void **)pending, *nb_pending);
			*nb_pending = 0;
		}

		pending[(*nb_pending)++] = m;
	}
}
/**
 * @internal helper function for freeing a bulk of packet mbuf segments
 * via an array holding the packet mbuf segments from the same mempool
 * pending to be freed.
 *
 * @param m
 *  The packet mbuf segment to be freed.
 * @param pending
 *  Pointer to the array of packet mbuf segments pending to be freed.
 * @param nb_pending
 *  Pointer to the number of elements held in the array.
 * @param pending_sz
 *  Number of elements the array can hold.
 *  Note: The compiler should optimize this parameter away when using a
 *  constant value, such as RTE_PKTMBUF_FREE_PENDING_SZ.
 */
@internal helper function for freeing a bulk of packet mbuf segments
via an array holding the packet mbuf segments from the same mempool
pending to be freed.

@param m
The packet mbuf segment to be freed.
@param pending
Pointer to the array of packet mbuf segments pending to be freed.
@param nb_pending
Pointer to the number of elements held in the array.
@param pending_sz
Number of elements the array can hold.
Note: The compiler should optimize this parameter away when using a
constant value, such as RTE_PKTMBUF_FREE_PENDING_SZ.
@internal helper function for freeing a bulk of packet mbuf segments via an array holding the packet mbuf segments from the same mempool pending to be freed . @param m The packet mbuf segment to be freed . @param pending Pointer to the array of packet mbuf segments pending to be freed . @param nb_pending Pointer to the number of elements held in the array . @param pending_sz Number of elements the array can hold . Note : The compiler should optimize this parameter away when using a constant value such as RTE_PKTMBUF_FREE_PENDING_SZ .
static void
__rte_pktmbuf_free_seg_via_array(struct rte_mbuf *m,
	struct rte_mbuf ** const pending, unsigned int * const nb_pending,
	const unsigned int pending_sz)
{
	m = rte_pktmbuf_prefree_seg(m);
	if (likely(m != NULL)) {
		if (*nb_pending == pending_sz ||
		    (*nb_pending > 0 && m->pool != pending[0]->pool)) {
			rte_mempool_put_bulk(pending[0]->pool,
					(void **)pending, *nb_pending);
			*nb_pending = 0;
		}
		pending[(*nb_pending)++] = m;
	}
}
static void __rte_pktmbuf_free_seg_via_array ( struct rte_mbuf * m , struct rte_mbuf * * const pending , unsigned int * const nb_pending , const unsigned int pending_sz ) { m = rte_pktmbuf_prefree_seg ( m ) ; if ( likely ( m != NULL ) ) { if ( * nb_pending == pending_sz || ( * nb_pending > 0 && m -> pool != pending [ 0 ] -> pool ) ) { rte_mempool_put_bulk ( pending [ 0 ] -> pool , ( void * * ) pending , * nb_pending ) ; * nb_pending = 0 ; } pending [ ( * nb_pending ) ++ ] = m ; } }
@internal helper function for freeing a bulk of packet mbuf segments
 via an array holding the packet mbuf segments from the same mempool
 pending to be freed.
@internal helper function for freeing a bulk of packet mbuf segments via an array holding the packet mbuf segments from the same mempool pending to be freed .