TXQ_ETH
struct sge_txq *txq = &qs->txq[TXQ_ETH];
struct sge_txq *txq = &qs->txq[TXQ_ETH];
drops += sc->sge.qs[i].txq[TXQ_ETH].txq_mr->br_drops;
qs->txq[TXQ_ETH].cntxt_id = FW_TUNNEL_SGEEC_START + id;
qs->txq[TXQ_ETH].token = FW_TUNNEL_TID_START + id;
mbufq_init(&qs->txq[TXQ_ETH].sendq, INT_MAX);
txq = &qs->txq[TXQ_ETH];
check_ring_tx_db(qs->port->adapter, &qs->txq[TXQ_ETH], 1);
struct sge_txq *txq = &qs->txq[TXQ_ETH];
struct sge_txq *txq = &qs->txq[TXQ_ETH];
struct sge_txq *txq = &qs->txq[TXQ_ETH];
reclaim_completed_tx(qs, 0, TXQ_ETH);
reclaim_completed_tx(qs, cxgb_tx_reclaim_threshold, TXQ_ETH);
struct sge_txq *txq = &qs->txq[TXQ_ETH];
reclaim_completed_tx(qs, cxgb_tx_reclaim_threshold, TXQ_ETH);
error = drbr_enqueue(ifp, qs->txq[TXQ_ETH].txq_mr, m);
reclaim_completed_tx(q, 0, TXQ_ETH);
if (q->txq[TXQ_ETH].txq_mr != NULL)
buf_ring_free(q->txq[TXQ_ETH].txq_mr, M_DEVBUF);
if (q->txq[TXQ_ETH].txq_ifq != NULL) {
ifq_delete(q->txq[TXQ_ETH].txq_ifq);
free(q->txq[TXQ_ETH].txq_ifq, M_DEVBUF);
#define TXQ_RING_EMPTY(qs) drbr_empty((qs)->port->ifp, (qs)->txq[TXQ_ETH].txq_mr)
drbr_needs_enqueue((qs)->port->ifp, (qs)->txq[TXQ_ETH].txq_mr)
#define TXQ_RING_FLUSH(qs) drbr_flush((qs)->port->ifp, (qs)->txq[TXQ_ETH].txq_mr)
drbr_dequeue_cond((qs)->port->ifp, (qs)->txq[TXQ_ETH].txq_mr, func, arg)
drbr_dequeue((qs)->port->ifp, (qs)->txq[TXQ_ETH].txq_mr)
q->txq[TXQ_ETH].txq_mr = buf_ring_alloc(cxgb_txq_buf_ring_size,
if ((q->txq[TXQ_ETH].txq_ifq = malloc(sizeof(struct ifaltq), M_DEVBUF,
ifq_init(q->txq[TXQ_ETH].txq_ifq, pi->ifp);
callout_init(&q->txq[TXQ_ETH].txq_timer, 1);
callout_init(&q->txq[TXQ_ETH].txq_watchdog, 1);
q->txq[TXQ_ETH].txq_timer.c_cpu = id % mp_ncpus;
q->txq[TXQ_ETH].txq_watchdog.c_cpu = id % mp_ncpus;
TASK_INIT(&q->txq[TXQ_ETH].qreclaim_task, 0, sge_txq_reclaim_handler, q);
q->txq[TXQ_ETH].stop_thres = nports *
ret = -t3_sge_init_ecntxt(sc, q->txq[TXQ_ETH].cntxt_id, USE_GTS,
SGE_CNTXT_ETH, id, q->txq[TXQ_ETH].phys_addr,
q->txq[TXQ_ETH].size, q->txq[TXQ_ETH].token,
txq = &qs->txq[TXQ_ETH];
clear_bit(TXQ_RUNNING, &qs->txq[TXQ_ETH].flags);
qs->txq[TXQ_ETH].processed += credits;
qs = txq_to_qset(txq, TXQ_ETH);
struct sge_txq *txq = &qs->txq[TXQ_ETH];
CTLFLAG_RD, &qs->txq[TXQ_ETH].txq_mr->br_drops,
CTLFLAG_RD, &qs->txq[TXQ_ETH].sendq.mq_len,
CTLFLAG_RD, (uint32_t *)(uintptr_t)&qs->txq[TXQ_ETH].txq_mr.br_prod,
CTLFLAG_RD, (uint32_t *)(uintptr_t)&qs->txq[TXQ_ETH].txq_mr.br_cons,
CTLFLAG_RD, &qs->txq[TXQ_ETH].processed,
CTLFLAG_RW, &qs->txq[TXQ_ETH].gen,
CTLFLAG_RW, &qs->txq[TXQ_ETH].txq_dump_start,
CTLFLAG_RW, &qs->txq[TXQ_ETH].txq_dump_count,
&qs->txq[TXQ_ETH], 0, t3_dump_txq_eth, "A",
if (isset(&qs->txq_stopped, TXQ_ETH))
clrbit(&qs->txq_stopped, TXQ_ETH);
return (reclaim_completed_tx(qs, TX_RECLAIM_MAX, TXQ_ETH));
q->txq_size[TXQ_ETH] = TX_ETH_Q_SIZE;