Lines Matching refs:kring

58 vtnet_netmap_txsync(struct netmap_kring *kring, int flags)  in vtnet_netmap_txsync()  argument
60 struct netmap_adapter *na = kring->na; in vtnet_netmap_txsync()
62 struct netmap_ring *ring = kring->ring; in vtnet_netmap_txsync()
63 u_int ring_nr = kring->ring_id; in vtnet_netmap_txsync()
65 u_int const lim = kring->nkr_num_slots - 1; in vtnet_netmap_txsync()
66 u_int const head = kring->rhead; in vtnet_netmap_txsync()
72 int interrupts = !(kring->nr_kflags & NKR_NOINTR); in vtnet_netmap_txsync()
79 nm_i = kring->nr_hwcur; in vtnet_netmap_txsync()
86 uint64_t offset = nm_get_offset(kring, slot); in vtnet_netmap_txsync()
109 kring->name, err); in vtnet_netmap_txsync()
117 kring->nr_hwcur = nm_i; /* note we might break early */ in vtnet_netmap_txsync()
134 kring->nr_hwtail += n; in vtnet_netmap_txsync()
135 if (kring->nr_hwtail > lim) in vtnet_netmap_txsync()
136 kring->nr_hwtail -= lim + 1; in vtnet_netmap_txsync()
153 vtnet_netmap_kring_refill(struct netmap_kring *kring, u_int num) in vtnet_netmap_kring_refill() argument
155 struct netmap_adapter *na = kring->na; in vtnet_netmap_kring_refill()
157 struct netmap_ring *ring = kring->ring; in vtnet_netmap_kring_refill()
158 u_int ring_nr = kring->ring_id; in vtnet_netmap_kring_refill()
159 u_int const lim = kring->nkr_num_slots - 1; in vtnet_netmap_kring_refill()
174 uint64_t offset = nm_get_offset(kring, slot); in vtnet_netmap_kring_refill()
180 netmap_ring_reinit(kring); in vtnet_netmap_kring_refill()
196 kring->name, err); in vtnet_netmap_kring_refill()
215 struct netmap_kring *kring; in vtnet_netmap_rxq_populate() local
223 kring = na->rx_rings[rxq->vtnrx_id]; in vtnet_netmap_rxq_populate()
234 rxq->vtnrx_nm_refill = kring->nr_hwtail; in vtnet_netmap_rxq_populate()
235 num = na->num_rx_desc - 1 - nm_kr_rxspace(kring); in vtnet_netmap_rxq_populate()
236 error = vtnet_netmap_kring_refill(kring, num); in vtnet_netmap_rxq_populate()
244 vtnet_netmap_rxsync(struct netmap_kring *kring, int flags) in vtnet_netmap_rxsync() argument
246 struct netmap_adapter *na = kring->na; in vtnet_netmap_rxsync()
248 struct netmap_ring *ring = kring->ring; in vtnet_netmap_rxsync()
249 u_int ring_nr = kring->ring_id; in vtnet_netmap_rxsync()
251 u_int const lim = kring->nkr_num_slots - 1; in vtnet_netmap_rxsync()
252 u_int const head = kring->rhead; in vtnet_netmap_rxsync()
254 (kring->nr_kflags & NKR_PENDINTR); in vtnet_netmap_rxsync()
255 int interrupts = !(kring->nr_kflags & NKR_NOINTR); in vtnet_netmap_rxsync()
272 uint32_t hwtail_lim = nm_prev(kring->nr_hwcur, lim); in vtnet_netmap_rxsync()
277 nm_i = kring->nr_hwtail; in vtnet_netmap_rxsync()
315 kring->nr_hwtail = nm_i; in vtnet_netmap_rxsync()
316 kring->nr_kflags &= ~NKR_PENDINTR; in vtnet_netmap_rxsync()
322 nm_i = kring->nr_hwcur; /* netmap ring index */ in vtnet_netmap_rxsync()
329 released += kring->nkr_num_slots; in vtnet_netmap_rxsync()
330 error = vtnet_netmap_kring_refill(kring, released); in vtnet_netmap_rxsync()
336 kring->nr_hwcur = head; in vtnet_netmap_rxsync()
340 nm_prdis("h %d c %d t %d hwcur %d hwtail %d", kring->rhead, in vtnet_netmap_rxsync()
341 kring->rcur, kring->rtail, kring->nr_hwcur, kring->nr_hwtail); in vtnet_netmap_rxsync()