| 304 | } |
| 305 | |
| 306 | uint16_t |
| 307 | rte_eth_call_tx_callbacks(uint16_t port_id, uint16_t queue_id, |
| 308 | struct rte_mbuf **tx_pkts, uint16_t nb_pkts, void *opaque) |
| 309 | { |
| 310 | const struct rte_eth_rxtx_callback *cb = opaque; |
| 311 | |
| 312 | while (cb != NULL) { |
| 313 | nb_pkts = cb->fn.tx(port_id, queue_id, tx_pkts, nb_pkts, |
| 314 | cb->param); |
| 315 | cb = cb->next; |
| 316 | } |
| 317 | |
| 318 | rte_eth_trace_call_tx_callbacks(port_id, queue_id, (void **)tx_pkts, |
| 319 | nb_pkts); |
| 320 | |
| 321 | return nb_pkts; |
| 322 | } |
| 323 | |
| 324 | void * |
| 325 | eth_dev_shared_data_prepare(void) |