| 285 | } |
| 286 | |
| 287 | uint16_t |
| 288 | rte_eth_call_rx_callbacks(uint16_t port_id, uint16_t queue_id, |
| 289 | struct rte_mbuf **rx_pkts, uint16_t nb_rx, uint16_t nb_pkts, |
| 290 | void *opaque) |
| 291 | { |
| 292 | const struct rte_eth_rxtx_callback *cb = opaque; |
| 293 | |
| 294 | while (cb != NULL) { |
| 295 | nb_rx = cb->fn.rx(port_id, queue_id, rx_pkts, nb_rx, |
| 296 | nb_pkts, cb->param); |
| 297 | cb = cb->next; |
| 298 | } |
| 299 | |
| 300 | rte_eth_trace_call_rx_callbacks(port_id, queue_id, (void **)rx_pkts, |
| 301 | nb_rx, nb_pkts); |
| 302 | |
| 303 | return nb_rx; |
| 304 | } |
| 305 | |
| 306 | uint16_t |
| 307 | rte_eth_call_tx_callbacks(uint16_t port_id, uint16_t queue_id, |