Lines Matching defs:rxr
527 vmxnet3_rxr_increment_fill(struct vmxnet3_rxring *rxr)
530 if (++rxr->vxrxr_fill == rxr->vxrxr_ndesc) {
531 rxr->vxrxr_fill = 0;
532 rxr->vxrxr_gen ^= 1;
1130 struct vmxnet3_rxring *rxr;
1142 rxr = &rxq->vxrxq_cmd_ring[i];
1143 rxr->vxrxr_rid = i;
1144 rxr->vxrxr_ndesc = sc->vmx_nrxdescs;
1145 rxr->vxrxr_rxbuf = kmem_zalloc(rxr->vxrxr_ndesc *
1243 struct vmxnet3_rxring *rxr;
1249 rxr = &rxq->vxrxq_cmd_ring[i];
1251 if (rxr->vxrxr_rxbuf != NULL) {
1252 kmem_free(rxr->vxrxr_rxbuf,
1253 rxr->vxrxr_ndesc * sizeof(struct vmxnet3_rxbuf));
1254 rxr->vxrxr_rxbuf = NULL;
1476 struct vmxnet3_rxring *rxr;
1490 rxr = &rxq->vxrxq_cmd_ring[i];
1492 descsz = rxr->vxrxr_ndesc *
1494 compsz += rxr->vxrxr_ndesc *
1498 &rxr->vxrxr_dma);
1505 rxr->vxrxr_rxd =
1506 (struct vmxnet3_rxdesc *) rxr->vxrxr_dma.dma_vaddr;
1519 rxr = &rxq->vxrxq_cmd_ring[i];
1523 &rxr->vxrxr_spare_dmap);
1531 for (j = 0; j < rxr->vxrxr_ndesc; j++) {
1534 &rxr->vxrxr_rxbuf[j].vrxb_dmamap);
1553 struct vmxnet3_rxring *rxr;
1564 rxr = &rxq->vxrxq_cmd_ring[i];
1566 if (rxr->vxrxr_spare_dmap != NULL) {
1568 rxr->vxrxr_spare_dmap);
1569 rxr->vxrxr_spare_dmap = NULL;
1572 for (j = 0; j < rxr->vxrxr_ndesc; j++) {
1573 rxb = &rxr->vxrxr_rxbuf[j];
1588 rxr = &rxq->vxrxq_cmd_ring[i];
1590 if (rxr->vxrxr_rxd != NULL) {
1591 vmxnet3_dma_free(sc, &rxr->vxrxr_dma);
1592 rxr->vxrxr_rxd = NULL;
2184 struct vmxnet3_rxring *rxr)
2194 dmap = rxr->vxrxr_spare_dmap;
2195 idx = rxr->vxrxr_fill;
2196 rxd = &rxr->vxrxr_rxd[idx];
2197 rxb = &rxr->vxrxr_rxbuf[idx];
2200 if (rxr->vxrxr_rid != 0)
2232 rxr->vxrxr_spare_dmap = rxb->vrxb_dmamap;
2239 rxd->gen = rxr->vxrxr_gen;
2241 vmxnet3_rxr_increment_fill(rxr);
2247 struct vmxnet3_rxring *rxr, int idx)
2251 rxd = &rxr->vxrxr_rxd[idx];
2252 rxd->gen = rxr->vxrxr_gen;
2253 vmxnet3_rxr_increment_fill(rxr);
2260 struct vmxnet3_rxring *rxr;
2282 rxr = &rxq->vxrxq_cmd_ring[0];
2284 rxr = &rxq->vxrxq_cmd_ring[1];
2285 vmxnet3_rxq_eof_discard(rxq, rxr, idx);
2353 struct vmxnet3_rxring *rxr;
2398 rxr = &rxq->vxrxq_cmd_ring[0];
2400 rxr = &rxq->vxrxq_cmd_ring[1];
2401 rxd = &rxr->vxrxr_rxd[idx];
2403 m = rxr->vxrxr_rxbuf[idx].vrxb_m;
2411 if (__predict_false(rxr->vxrxr_fill != idx)) {
2412 while (rxr->vxrxr_fill != idx) {
2413 rxr->vxrxr_rxd[rxr->vxrxr_fill].gen =
2414 rxr->vxrxr_gen;
2415 vmxnet3_rxr_increment_fill(rxr);
2423 KASSERT(rxr == &rxq->vxrxq_cmd_ring[0]);
2429 vmxnet3_rxq_eof_discard(rxq, rxr, idx);
2433 if (vmxnet3_newbuf(sc, rxq, rxr) != 0) {
2435 vmxnet3_rxq_eof_discard(rxq, rxr, idx);
2452 if (vmxnet3_newbuf(sc, rxq, rxr) != 0) {
2454 vmxnet3_rxq_eof_discard(rxq, rxr, idx);
2482 idx = (idx + 1) % rxr->vxrxr_ndesc;
2702 struct vmxnet3_rxring *rxr;
2713 rxr = &rxq->vxrxq_cmd_ring[i];
2715 for (j = 0; j < rxr->vxrxr_ndesc; j++) {
2716 rxb = &rxr->vxrxr_rxbuf[j];
2821 struct vmxnet3_rxring *rxr;
2830 rxr = &rxq->vxrxq_cmd_ring[i];
2831 rxr->vxrxr_fill = 0;
2832 rxr->vxrxr_gen = VMXNET3_INIT_GEN;
2833 memset(rxr->vxrxr_rxd, 0,
2834 rxr->vxrxr_ndesc * sizeof(struct vmxnet3_rxdesc));
2836 for (idx = 0; idx < rxr->vxrxr_ndesc; idx++) {
2837 error = vmxnet3_newbuf(sc, rxq, rxr);
2844 rxr = &rxq->vxrxq_cmd_ring[i];
2845 rxr->vxrxr_fill = 0;
2846 rxr->vxrxr_gen = 0;
2847 memset(rxr->vxrxr_rxd, 0,
2848 rxr->vxrxr_ndesc * sizeof(struct vmxnet3_rxdesc));