Lines Matching refs:na

493 netmap_extra_alloc(struct netmap_adapter *na, uint32_t *head, uint32_t n)
495 struct netmap_mem_d *nmd = na->nm_mem;
519 netmap_extra_free(struct netmap_adapter *na, uint32_t head)
521 struct lut_entry *lut = na->na_lut;
522 struct netmap_mem_d *nmd = na->nm_mem;
1133 netmap_free_rings(struct netmap_adapter *na)
1137 if (!na->tx_rings)
1139 for (kring = na->tx_rings; kring != na->rx_rings; kring++) {
1143 netmap_free_bufs(na->nm_mem, ring->slot, kring->nkr_num_slots);
1144 netmap_ring_free(na->nm_mem, ring);
1147 for (/* cont'd from above */; kring != na->tailroom; kring++) {
1151 netmap_free_bufs(na->nm_mem, ring->slot, kring->nkr_num_slots);
1152 netmap_ring_free(na->nm_mem, ring);
1165 netmap_mem_rings_create(struct netmap_adapter *na)
1172 NMA_LOCK(na->nm_mem);
1175 for (i =0, kring = na->tx_rings; kring != na->rx_rings; kring++, i++) {
1177 ND("%s %ld already created", kring->name, kring - na->tx_rings);
1183 ring = netmap_ring_malloc(na->nm_mem, len);
1192 (na->nm_mem->pools[NETMAP_IF_POOL].memtotal +
1193 na->nm_mem->pools[NETMAP_RING_POOL].memtotal) -
1194 netmap_ring_offset(na->nm_mem, ring);
1201 NETMAP_BDG_BUF_SIZE(na->nm_mem);
1205 if (i != na->num_tx_rings || (na->na_flags & NAF_HOST_RINGS)) {
1207 if (netmap_new_bufs(na->nm_mem, ring->slot, ndesc)) {
1213 netmap_mem_set_ring(na->nm_mem, ring->slot, ndesc, 0);
1218 for ( i = 0 /* kring cont'd from above */ ; kring != na->tailroom; kring++, i++) {
1220 ND("%s %ld already created", kring->name, kring - na->rx_rings);
1226 ring = netmap_ring_malloc(na->nm_mem, len);
1235 (na->nm_mem->pools[NETMAP_IF_POOL].memtotal +
1236 na->nm_mem->pools[NETMAP_RING_POOL].memtotal) -
1237 netmap_ring_offset(na->nm_mem, ring);
1244 NETMAP_BDG_BUF_SIZE(na->nm_mem);
1248 if (i != na->num_rx_rings || (na->na_flags & NAF_HOST_RINGS)) {
1250 if (netmap_new_bufs(na->nm_mem, ring->slot, ndesc)) {
1256 netmap_mem_set_ring(na->nm_mem, ring->slot, ndesc, 1);
1260 NMA_UNLOCK(na->nm_mem);
1265 netmap_free_rings(na);
1267 NMA_UNLOCK(na->nm_mem);
1273 netmap_mem_rings_delete(struct netmap_adapter *na)
1276 NMA_LOCK(na->nm_mem);
1278 netmap_free_rings(na);
1280 NMA_UNLOCK(na->nm_mem);
1288 * We assume that the configuration stored in na
1293 netmap_mem_if_new(const char *ifname, struct netmap_adapter *na)
1300 ntx = na->num_tx_rings + 1;
1301 nrx = na->num_rx_rings + 1;
1307 NMA_LOCK(na->nm_mem);
1310 nifp = netmap_if_malloc(na->nm_mem, len);
1312 NMA_UNLOCK(na->nm_mem);
1317 *(u_int *)(uintptr_t)&nifp->ni_tx_rings = na->num_tx_rings;
1318 *(u_int *)(uintptr_t)&nifp->ni_rx_rings = na->num_rx_rings;
1326 base = netmap_if_offset(na->nm_mem, nifp);
1329 netmap_ring_offset(na->nm_mem, na->tx_rings[i].ring) - base;
1333 netmap_ring_offset(na->nm_mem, na->rx_rings[i].ring) - base;
1336 NMA_UNLOCK(na->nm_mem);
1342 netmap_mem_if_delete(struct netmap_adapter *na, struct netmap_if *nifp)
1347 NMA_LOCK(na->nm_mem);
1349 netmap_extra_free(na, nifp->ni_bufs_head);
1350 netmap_if_free(na->nm_mem, nifp);
1352 NMA_UNLOCK(na->nm_mem);