NR_TX
slot = netmap_reset(na, NR_TX, i, 0);
return ena_ring_in_netmap(adapter, qid, NR_TX);
(x == NR_TX) ? "Tx" : "Rx", qid);
ena_netmap_reset_ring(adapter, qid, NR_TX);
slot = netmap_reset(na, NR_TX, 0, 0);
if (priv->np_qfirst[NR_TX] == 0 &&
priv->np_qlast[NR_TX] >= na->num_tx_rings) {
priv->np_qfirst[NR_TX],
priv->np_qlast[NR_TX],
for ((t_) = nonempty_sel((p_), NR_RX) ? NR_RX : NR_TX, \
(t == NR_TX && within_sel((p_), (t_), (i_)))) && \
priv->np_qfirst[NR_TX],
priv->np_qlast[NR_TX],
priv->np_qfirst[NR_TX],
priv->np_qlast[NR_TX],
csb_atok += num_rings[NR_TX];
csb_ktoa += num_rings[NR_TX];
t = (cmd == NIOCTXSYNC ? NR_TX : NR_RX);
#define want_tx want[NR_TX]
si[NR_TX] = priv->np_si[NR_TX];
const enum txrx t = NR_TX;
nm_os_selrecord(sr, si[NR_TX]);
for (i = priv->np_qfirst[NR_TX]; i < priv->np_qlast[NR_TX]; i++) {
nm_os_selrecord(sr, si[NR_TX]);
tx_kring = NMR(na, NR_TX)[txr];
if (tx == NR_TX) {
enum txrx t = (work_done ? NR_RX : NR_TX);
n[NR_TX] = netmap_all_rings(na, NR_TX);
len = (n[NR_TX] + n[NR_RX]) *
na->rx_rings = na->tx_rings + n[NR_TX];
for (i = 0; i < n[NR_TX] + n[NR_RX]; i++) {
kring->nm_sync = (t == NR_TX ? na->nm_txsync : na->nm_rxsync);
kring->nm_sync = (t == NR_TX ?
kring->rtail = kring->nr_hwtail = (t == NR_TX ? ndesc - 1 : 0);
mtx_init(&kring->q_lock, (t == NR_TX ? "nm_txq_lock" : "nm_rxq_lock"), NULL, MTX_DEF);
hostna->num_rx_rings = nma_get_nrings(hwna, NR_TX);
nma_get_nrings(hwna, NR_TX), NULL);
struct nm_selinfo *si = priv->np_si[NR_TX];
si = priv->np_si[kn->kn_filter == EVFILT_WRITE ? NR_TX : NR_RX];
si = priv->np_si[(ev == EVFILT_WRITE) ? NR_TX : NR_RX];
else if (t == NR_TX && q < na->num_tx_rings)
(t == NR_TX ? DMA_TO_DEVICE : DMA_FROM_DEVICE));
(t == NR_TX ? DMA_TO_DEVICE : DMA_FROM_DEVICE));
return (t== NR_RX ? NR_TX : NR_RX);
return (t == NR_TX ? na->num_tx_desc : na->num_rx_desc);
if (t == NR_TX)
return (t == NR_TX ? na->num_tx_rings : na->num_rx_rings);
return (t == NR_TX ? na->num_host_tx_rings : na->num_host_rx_rings);
if (t == NR_TX)
if (t == NR_TX)
return (t == NR_TX ? na->tx_rings : na->rx_rings);
num_tx_rings = priv->np_qlast[NR_TX] - priv->np_qfirst[NR_TX];
a->kring = NMR(na, NR_TX)[i + priv->np_qfirst[NR_TX]];
poll_wait(priv->np_filp, priv->np_si[NR_TX],
for (i = 0; i < n[NR_TX]; i++) {
if (na->tx_rings[i]->ring != NULL && i >= priv->np_qfirst[NR_TX]
&& i < priv->np_qlast[NR_TX]) {
*(ssize_t *)(uintptr_t)&nifp->ring_ofs[i+n[NR_TX]] = ofs;
for (i = 0; i < netmap_all_rings(na, NR_TX); i++) {
nifp->ring_ofs[netmap_all_rings(na, NR_TX) + i]);
kring->nm_sync = t == NR_TX ? netmap_monitor_txsync :
kring->zmon_list[NR_TX].next == NULL &&
if (kring->tx == NR_TX) {
if (t == NR_TX)
if (t == NR_TX)
uint16_t txmon = kring->tx == NR_TX ? NS_TXMON : 0;
if (tx == NR_TX) {
return netmap_zmon_parent_sync(kring, flags, NR_TX);
uint16_t txmon = kring->tx == NR_TX ? NS_TXMON : 0;
if (kring->zmon_list[NR_TX].next != NULL) {
nrings = netmap_real_rings(na, NR_TX);
txq->vtntx_id, NR_TX);
netmap_reset(NA(sc->vtnet_ifp), NR_TX, i, 0);
slot = netmap_reset(na, NR_TX, txq->ift_id, 0);