Lines Matching defs:na
267 netmap_mem_if_new(struct netmap_adapter *na, struct netmap_priv_d *priv)
270 struct netmap_mem_d *nmd = na->nm_mem;
273 nifp = nmd->ops->nmd_if_new(nmd, na, priv);
280 netmap_mem_if_delete(struct netmap_adapter *na, struct netmap_if *nif)
282 struct netmap_mem_d *nmd = na->nm_mem;
285 nmd->ops->nmd_if_delete(nmd, na, nif);
290 netmap_mem_rings_create(struct netmap_adapter *na)
293 struct netmap_mem_d *nmd = na->nm_mem;
296 rv = nmd->ops->nmd_rings_create(nmd, na);
303 netmap_mem_rings_delete(struct netmap_adapter *na)
305 struct netmap_mem_d *nmd = na->nm_mem;
308 nmd->ops->nmd_rings_delete(nmd, na);
359 netmap_mem_finalize(struct netmap_mem_d *nmd, struct netmap_adapter *na)
362 if (nm_mem_check_group(nmd, na->pdev) < 0) {
373 nmd->lasterr = nmd->ops->nmd_finalize(nmd, na);
376 nmd->lasterr = netmap_mem_map(&nmd->pools[NETMAP_BUF_POOL], na);
384 netmap_mem_deref(nmd, na);
475 netmap_mem_deref(struct netmap_mem_d *nmd, struct netmap_adapter *na)
479 if (na->active_fds <= 0 && !(nmd->flags & NETMAP_MEM_NOMAP))
480 netmap_mem_unmap(&nmd->pools[NETMAP_BUF_POOL], na);
490 nmd->ops->nmd_deref(nmd, na);
1145 netmap_extra_alloc(struct netmap_adapter *na, uint32_t *head, uint32_t n)
1147 struct netmap_mem_d *nmd = na->nm_mem;
1171 netmap_extra_free(struct netmap_adapter *na, uint32_t head)
1173 struct lut_entry *lut = na->na_lut.lut;
1174 struct netmap_mem_d *nmd = na->nm_mem;
1542 netmap_mem_unmap(struct netmap_obj_pool *p, struct netmap_adapter *na)
1546 if (na == NULL || na->pdev == NULL)
1549 lut = &na->na_lut;
1565 nm_prdis("unmapping and freeing plut for %s", na->name);
1566 if (lut->plut == NULL || na->pdev == NULL)
1570 netmap_unload_map(na, (bus_dma_tag_t) na->pdev, &lut->plut[i].paddr, p->_clustsize);
1580 netmap_mem_map(struct netmap_obj_pool *p, struct netmap_adapter *na)
1584 struct netmap_lut *lut = &na->na_lut;
1586 if (na->pdev == NULL)
1603 nm_prdis("plut already allocated for %s", na->name);
1607 nm_prdis("allocating physical lut for %s", na->name);
1610 nm_prerr("Failed to allocate physical lut for %s", na->name);
1624 error = netmap_load_map(na, (bus_dma_tag_t) na->pdev, &lut->plut[i].paddr,
1637 netmap_mem_unmap(p, na);
1825 netmap_mem_get_allocator(struct netmap_adapter *na)
1830 if (na == NULL || na->pdev == NULL)
1833 domain = nm_numa_domain(na->pdev);
1834 grp_id = nm_iommu_group_id(na->pdev);
1910 netmap_mem2_finalize(struct netmap_mem_d *nmd, struct netmap_adapter *na)
1988 netmap_mem2_rings_create(struct netmap_mem_d *nmd, struct netmap_adapter *na)
1995 for (i = 0; i < netmap_all_rings(na, t); i++) {
1996 struct netmap_kring *kring = NMR(na, t)[i];
2067 netmap_mem2_rings_delete(struct netmap_mem_d *nmd, struct netmap_adapter *na)
2073 for (i = 0; i < netmap_all_rings(na, t); i++) {
2074 struct netmap_kring *kring = NMR(na, t)[i];
2101 * We assume that the configuration stored in na
2107 struct netmap_adapter *na, struct netmap_priv_d *priv)
2117 n[t] = netmap_all_rings(na, t);
2132 *(u_int *)(uintptr_t)&nifp->ni_tx_rings = na->num_tx_rings;
2133 *(u_int *)(uintptr_t)&nifp->ni_rx_rings = na->num_rx_rings;
2135 (na->num_host_tx_rings ? na->num_host_tx_rings : 1);
2137 (na->num_host_rx_rings ? na->num_host_rx_rings : 1);
2138 strlcpy(nifp->ni_name, na->name, sizeof(nifp->ni_name));
2151 if (na->tx_rings[i]->ring != NULL && i >= priv->np_qfirst[NR_TX]
2154 na->tx_rings[i]->ring) - base;
2163 if (na->rx_rings[i]->ring != NULL && i >= priv->np_qfirst[NR_RX]
2166 na->rx_rings[i]->ring) - base;
2176 struct netmap_adapter *na, struct netmap_if *nifp)
2182 netmap_extra_free(na, nifp->ni_bufs_head);
2187 netmap_mem2_deref(struct netmap_mem_d *nmd, struct netmap_adapter *na)
2642 netmap_mem_pt_guest_finalize(struct netmap_mem_d *nmd, struct netmap_adapter *na)
2715 netmap_mem_pt_guest_deref(struct netmap_mem_d *nmd, struct netmap_adapter *na)
2756 struct netmap_adapter *na, struct netmap_priv_d *priv)
2762 ptif = netmap_mem_pt_guest_ifp_lookup(nmd, na->ifp);
2764 nm_prerr("interface %s is not in passthrough", na->name);
2776 struct netmap_adapter *na, struct netmap_if *nifp)
2780 ptif = netmap_mem_pt_guest_ifp_lookup(nmd, na->ifp);
2782 nm_prerr("interface %s is not in passthrough", na->name);
2788 struct netmap_adapter *na)
2795 ptif = netmap_mem_pt_guest_ifp_lookup(nmd, na->ifp);
2797 nm_prerr("interface %s is not in passthrough", na->name);
2804 for (i = 0; i < netmap_all_rings(na, NR_TX); i++) {
2805 struct netmap_kring *kring = na->tx_rings[i];
2811 for (i = 0; i < netmap_all_rings(na, NR_RX); i++) {
2812 struct netmap_kring *kring = na->rx_rings[i];
2817 nifp->ring_ofs[netmap_all_rings(na, NR_TX) + i]);
2826 netmap_mem_pt_guest_rings_delete(struct netmap_mem_d *nmd, struct netmap_adapter *na)
2833 for (i = 0; i < nma_get_nrings(na, t) + 1; i++) {
2834 struct netmap_kring *kring = &NMR(na, t)[i];
2841 (void)na;