/** * eth_process_poll - polls HW for new packets * * Returns the number of new packets received. */ int eth_process_poll(void) { int i, count = 0; struct eth_rx_queue *rxq; for (i = 0; i < percpu_get(eth_num_queues); i++) { rxq = percpu_get(eth_rxqs[i]); count += eth_rx_poll(rxq); } return count; }
static int event_eth_rx_adapter_service_func(void *args) { struct rte_event_eth_rx_adapter *rx_adapter = args; struct rte_eth_event_enqueue_buffer *buf; buf = &rx_adapter->event_enqueue_buffer; if (rte_spinlock_trylock(&rx_adapter->rx_lock) == 0) return 0; if (eth_rx_poll(rx_adapter) == 0 && buf->count) flush_event_buffer(rx_adapter); rte_spinlock_unlock(&rx_adapter->rx_lock); return 0; }