aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/netmap
diff options
context:
space:
mode:
authorVincenzo Maffione <vmaffione@FreeBSD.org>2020-06-11 20:35:28 +0000
committerVincenzo Maffione <vmaffione@FreeBSD.org>2020-06-11 20:35:28 +0000
commit6682323732a1aab8c07b2ebead1037c1ad8abe12 (patch)
treee4c0ec74fba0335e986ed04855852011974b0449 /sys/dev/netmap
parente09fb42a9ab871c42bfde443337b4efcc49eb2ca (diff)
Notes
Diffstat (limited to 'sys/dev/netmap')
-rw-r--r--sys/dev/netmap/if_vtnet_netmap.h19
-rw-r--r--sys/dev/netmap/netmap_kern.h18
2 files changed, 18 insertions, 19 deletions
diff --git a/sys/dev/netmap/if_vtnet_netmap.h b/sys/dev/netmap/if_vtnet_netmap.h
index 113a85655531..fc667738a1f5 100644
--- a/sys/dev/netmap/if_vtnet_netmap.h
+++ b/sys/dev/netmap/if_vtnet_netmap.h
@@ -33,25 +33,6 @@
#include <vm/pmap.h> /* vtophys ? */
#include <dev/netmap/netmap_kern.h>
-/*
- * Return 1 if the queue identified by 't' and 'idx' is in netmap mode.
- */
-static int
-vtnet_netmap_queue_on(struct vtnet_softc *sc, enum txrx t, int idx)
-{
- struct netmap_adapter *na = NA(sc->vtnet_ifp);
-
- if (!nm_native_on(na))
- return 0;
-
- if (t == NR_RX)
- return !!(idx < na->num_rx_rings &&
- na->rx_rings[idx]->nr_mode == NKR_NETMAP_ON);
-
- return !!(idx < na->num_tx_rings &&
- na->tx_rings[idx]->nr_mode == NKR_NETMAP_ON);
-}
-
/* Register and unregister. */
static int
vtnet_netmap_reg(struct netmap_adapter *na, int state)
diff --git a/sys/dev/netmap/netmap_kern.h b/sys/dev/netmap/netmap_kern.h
index 14896ebaa6a5..3786826d8e38 100644
--- a/sys/dev/netmap/netmap_kern.h
+++ b/sys/dev/netmap/netmap_kern.h
@@ -1353,6 +1353,24 @@ nm_native_on(struct netmap_adapter *na)
return nm_netmap_on(na) && (na->na_flags & NAF_NATIVE);
}
+static inline struct netmap_kring *
+netmap_kring_on(struct netmap_adapter *na, u_int q, enum txrx t)
+{
+ struct netmap_kring *kring = NULL;
+
+ if (!nm_native_on(na))
+ return NULL;
+
+ if (t == NR_RX && q < na->num_rx_rings)
+ kring = na->rx_rings[q];
+ else if (t == NR_TX && q < na->num_tx_rings)
+ kring = na->tx_rings[q];
+ else
+ return NULL;
+
+ return (kring->nr_mode == NKR_NETMAP_ON) ? kring : NULL;
+}
+
static inline int
nm_iszombie(struct netmap_adapter *na)
{