FreeBSD/sys/dev/e1000/if_lem.c
/* Combined RX/TX handler, used by Legacy and MSI */
Combined RX/TX handler, used by Legacy and MSI
Combined RX / TX handler used by Legacy and MSI
static void
lem_handle_rxtx(void *context, int pending)
{
	struct adapter	*adapter = context;
	if_t ifp = adapter->ifp;
	if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) {
		bool more = lem_rxeof(adapter, adapter->rx_process_limit, NULL);
		EM_TX_LOCK(adapter);
		lem_txeof(adapter);
		if(!if_sendq_empty(ifp))
			lem_start_locked(ifp);
		EM_TX_UNLOCK(adapter);
		if (more) {
			taskqueue_enqueue(adapter->tq, &adapter->rxtx_task);
			return;
		}
	}
	if (if_getdrvflags(ifp) & IFF_DRV_RUNNING)
		lem_enable_intr(adapter);
}
static void lem_handle_rxtx ( void * context , int pending ) { struct adapter * adapter = context ; if_t ifp = adapter -> ifp ; if ( if_getdrvflags ( ifp ) & IFF_DRV_RUNNING ) { bool more = lem_rxeof ( adapter , adapter -> rx_process_limit , NULL ) ; EM_TX_LOCK ( adapter ) ; lem_txeof ( adapter ) ; if ( ! if_sendq_empty ( ifp ) ) lem_start_locked ( ifp ) ; EM_TX_UNLOCK ( adapter ) ; if ( more ) { taskqueue_enqueue ( adapter -> tq , & adapter -> rxtx_task ) ; return ; } } if ( if_getdrvflags ( ifp ) & IFF_DRV_RUNNING ) lem_enable_intr ( adapter ) ; }
Combined RX/TX handler, used by Legacy and MSI
Combined RX / TX handler used by Legacy and MSI