Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/netmap/netmap_mem2.c
Context not available. | |||||
for_rx_tx(t) { | for_rx_tx(t) { | ||||
u_int i; | u_int i; | ||||
for (i = 0; i < nma_get_nrings(na, t) + 1; i++) { | for (i = 0; i < netmap_all_rings(na, t); i++) { | ||||
struct netmap_kring *kring = NMR(na, t)[i]; | struct netmap_kring *kring = NMR(na, t)[i]; | ||||
struct netmap_ring *ring = kring->ring; | struct netmap_ring *ring = kring->ring; | ||||
Context not available. | |||||
for_rx_tx(t) { | for_rx_tx(t) { | ||||
u_int i; | u_int i; | ||||
for (i = 0; i <= nma_get_nrings(na, t); i++) { | for (i = 0; i < netmap_all_rings(na, t); i++) { | ||||
struct netmap_kring *kring = NMR(na, t)[i]; | struct netmap_kring *kring = NMR(na, t)[i]; | ||||
struct netmap_ring *ring = kring->ring; | struct netmap_ring *ring = kring->ring; | ||||
u_int len, ndesc; | u_int len, ndesc; | ||||
Context not available. | |||||
netmap_mem_bufsize(na->nm_mem); | netmap_mem_bufsize(na->nm_mem); | ||||
ND("%s h %d c %d t %d", kring->name, | ND("%s h %d c %d t %d", kring->name, | ||||
ring->head, ring->cur, ring->tail); | ring->head, ring->cur, ring->tail); | ||||
ND("initializing slots for %s_ring", nm_txrx2str(txrx)); | ND("initializing slots for %s_ring", nm_txrx2str(t)); | ||||
if (!(kring->nr_kflags & NKR_FAKERING)) { | if (!(kring->nr_kflags & NKR_FAKERING)) { | ||||
/* this is a real ring */ | /* this is a real ring */ | ||||
ND("allocating buffers for %s", kring->name); | ND("allocating buffers for %s", kring->name); | ||||
Context not available. | |||||
ntot = 0; | ntot = 0; | ||||
for_rx_tx(t) { | for_rx_tx(t) { | ||||
/* account for the (eventually fake) host rings */ | /* account for the (eventually fake) host rings */ | ||||
n[t] = nma_get_nrings(na, t) + 1; | n[t] = netmap_all_rings(na, t); | ||||
ntot += n[t]; | ntot += n[t]; | ||||
} | } | ||||
/* | /* | ||||
Context not available. | |||||
/* point each kring to the corresponding backend ring */ | /* point each kring to the corresponding backend ring */ | ||||
nifp = (struct netmap_if *)((char *)ptnmd->nm_addr + ptif->nifp_offset); | nifp = (struct netmap_if *)((char *)ptnmd->nm_addr + ptif->nifp_offset); | ||||
for (i = 0; i <= na->num_tx_rings; i++) { | for (i = 0; i < netmap_all_rings(na, NR_TX); i++) { | ||||
struct netmap_kring *kring = na->tx_rings[i]; | struct netmap_kring *kring = na->tx_rings[i]; | ||||
if (kring->ring) | if (kring->ring) | ||||
continue; | continue; | ||||
Context not available. | |||||
kring->ring = (struct netmap_ring *) | kring->ring = (struct netmap_ring *) | ||||
((char *)nifp + nifp->ring_ofs[i]); | ((char *)nifp + nifp->ring_ofs[i]); | ||||
} | } | ||||
for (i = 0; i <= na->num_rx_rings; i++) { | for (i = 0; i < netmap_all_rings(na, NR_RX); i++) { | ||||
struct netmap_kring *kring = na->rx_rings[i]; | struct netmap_kring *kring = na->rx_rings[i]; | ||||
if (kring->ring) | if (kring->ring) | ||||
continue; | continue; | ||||
Context not available. |