Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/e1000/igb_txrx.c
Show First 20 Lines • Show All 231 Lines • ▼ Show 20 Lines | |||||
{ | { | ||||
struct adapter *sc = arg; | struct adapter *sc = arg; | ||||
if_softc_ctx_t scctx = sc->shared; | if_softc_ctx_t scctx = sc->shared; | ||||
struct em_tx_queue *que = &sc->tx_queues[pi->ipi_qsidx]; | struct em_tx_queue *que = &sc->tx_queues[pi->ipi_qsidx]; | ||||
struct tx_ring *txr = &que->txr; | struct tx_ring *txr = &que->txr; | ||||
int nsegs = pi->ipi_nsegs; | int nsegs = pi->ipi_nsegs; | ||||
bus_dma_segment_t *segs = pi->ipi_segs; | bus_dma_segment_t *segs = pi->ipi_segs; | ||||
union e1000_adv_tx_desc *txd = NULL; | union e1000_adv_tx_desc *txd = NULL; | ||||
int i, j, first, pidx_last; | int i, j, pidx_last; | ||||
u32 olinfo_status, cmd_type_len, txd_flags; | u32 olinfo_status, cmd_type_len, txd_flags; | ||||
qidx_t ntxd; | qidx_t ntxd; | ||||
pidx_last = olinfo_status = 0; | pidx_last = olinfo_status = 0; | ||||
/* Basic descriptor defines */ | /* Basic descriptor defines */ | ||||
cmd_type_len = (E1000_ADVTXD_DTYP_DATA | | cmd_type_len = (E1000_ADVTXD_DTYP_DATA | | ||||
E1000_ADVTXD_DCMD_IFCS | E1000_ADVTXD_DCMD_DEXT); | E1000_ADVTXD_DCMD_IFCS | E1000_ADVTXD_DCMD_DEXT); | ||||
if (pi->ipi_mflags & M_VLANTAG) | if (pi->ipi_mflags & M_VLANTAG) | ||||
cmd_type_len |= E1000_ADVTXD_DCMD_VLE; | cmd_type_len |= E1000_ADVTXD_DCMD_VLE; | ||||
first = i = pi->ipi_pidx; | i = pi->ipi_pidx; | ||||
ntxd = scctx->isc_ntxd[0]; | ntxd = scctx->isc_ntxd[0]; | ||||
txd_flags = pi->ipi_flags & IPI_TX_INTR ? E1000_ADVTXD_DCMD_RS : 0; | txd_flags = pi->ipi_flags & IPI_TX_INTR ? E1000_ADVTXD_DCMD_RS : 0; | ||||
/* Consume the first descriptor */ | /* Consume the first descriptor */ | ||||
i += igb_tx_ctx_setup(txr, pi, &cmd_type_len, &olinfo_status); | i += igb_tx_ctx_setup(txr, pi, &cmd_type_len, &olinfo_status); | ||||
if (i == scctx->isc_ntxd[0]) | if (i == scctx->isc_ntxd[0]) | ||||
i = 0; | i = 0; | ||||
/* 82575 needs the queue index added */ | /* 82575 needs the queue index added */ | ||||
▲ Show 20 Lines • Show All 324 Lines • Show Last 20 Lines |