Lines Matching refs:mkring

300 nm_zmon_list_head(struct netmap_kring *mkring, enum txrx t)
302 struct netmap_adapter *na = mkring->na;
303 struct netmap_kring *kring = mkring;
314 /* add the monitor mkring to the list of monitors of kring.
318 netmap_monitor_add(struct netmap_kring *mkring, struct netmap_kring *kring, int zmon)
323 struct netmap_zmon_list *mz = &mkring->zmon_list[t];
337 nm_prdis("%s: intercept callbacks on %s", mkring->name, ikring->name);
343 ikring->zmon_list[t].next = mkring;
344 z->prev = mkring; /* new tail */
357 kring->monitors[kring->n_monitors] = mkring;
358 mkring->mon_pos[kring->tx] = kring->n_monitors;
367 /* remove the monitor mkring from the list of monitors of kring.
371 netmap_monitor_del(struct netmap_kring *mkring, struct netmap_kring *kring, enum txrx t)
373 int zmon = nm_is_zmon(mkring->na);
374 struct netmap_zmon_list *mz = &mkring->zmon_list[t];
380 kring = nm_zmon_list_head(mkring, t);
401 netmap_adapter_put(mkring->na);
417 uint32_t mon_pos = mkring->mon_pos[kring->tx];
464 struct netmap_kring *mkring =
467 (struct netmap_monitor_adapter *)mkring->na;
515 struct netmap_kring *kring, *mkring;
528 mkring = NMR(na, t)[i];
529 if (!nm_kring_pending_on(mkring))
531 mkring->nr_mode = NKR_NETMAP_ON;
539 netmap_monitor_add(mkring, kring, zmon);
550 mkring = NMR(na, t)[i];
551 if (!nm_kring_pending_off(mkring))
553 mkring->nr_mode = NKR_NETMAP_OFF;
567 netmap_monitor_del(mkring, kring, s);
589 struct netmap_kring *mkring = kring->zmon_list[tx].next;
595 mlim; // = mkring->nkr_num_slots - 1;
598 if (mkring == NULL) {
602 mring = mkring->ring;
603 mlim = mkring->nkr_num_slots - 1;
632 mtx_lock(&mkring->q_lock);
634 i = mkring->nr_hwtail;
635 busy = i - mkring->nr_hwcur;
637 busy += mkring->nkr_num_slots;
674 mkring->nr_hwtail = i;
677 mtx_unlock(&mkring->q_lock);
681 mkring->nm_notify(mkring, 0);
736 struct netmap_kring *mkring = kring->monitors[j];
740 struct netmap_ring *ring = kring->ring, *mring = mkring->ring;
742 mlim = mkring->nkr_num_slots - 1;
748 mtx_lock(&mkring->q_lock);
750 i = mkring->nr_hwtail;
751 busy = i - mkring->nr_hwcur;
753 busy += mkring->nkr_num_slots;
774 *dst = NMB_O(mkring, ms);
776 max_len = NETMAP_BUF_SIZE(mkring->na) - nm_get_offset(mkring, ms);
779 mkring->name, copy_len, max_len);
792 mkring->nr_hwtail = i;
794 mtx_unlock(&mkring->q_lock);
798 mkring->nm_notify(mkring, 0);