Lines Matching refs:ring
114 #define NETMAP_BUF(ring, index) \ argument
115 ((char *)(ring) + (ring)->buf_ofs + ((index)*(ring)->nr_buf_size))
117 #define NETMAP_BUF_IDX(ring, buf) \ argument
118 ( ((char *)(buf) - ((char *)(ring) + (ring)->buf_ofs) ) / \
119 (ring)->nr_buf_size )
141 nm_ring_space(struct netmap_ring *ring) in nm_ring_space() argument
143 int ret = ring->tail - ring->cur; in nm_ring_space()
145 ret += ring->num_slots; in nm_ring_space()
926 struct netmap_ring *ring; in nm_inject() local
932 ring = NETMAP_TXRING(d->nifp, ri); in nm_inject()
933 if (nm_ring_empty(ring)) { in nm_inject()
936 i = ring->cur; in nm_inject()
937 idx = ring->slot[i].buf_idx; in nm_inject()
938 ring->slot[i].len = size; in nm_inject()
939 nm_pkt_copy(buf, NETMAP_BUF(ring, idx), size); in nm_inject()
941 ring->head = ring->cur = nm_ring_next(ring, i); in nm_inject()
965 struct netmap_ring *ring; in nm_dispatch() local
970 ring = NETMAP_RXRING(d->nifp, ri); in nm_dispatch()
971 for ( ; !nm_ring_empty(ring) && cnt != got; got++) { in nm_dispatch()
972 u_int i = ring->cur; in nm_dispatch()
973 u_int idx = ring->slot[i].buf_idx; in nm_dispatch()
974 u_char *buf = (u_char *)NETMAP_BUF(ring, idx); in nm_dispatch()
977 d->hdr.len = d->hdr.caplen = ring->slot[i].len; in nm_dispatch()
978 d->hdr.ts = ring->ts; in nm_dispatch()
980 ring->head = ring->cur = nm_ring_next(ring, i); in nm_dispatch()
994 struct netmap_ring *ring = NETMAP_RXRING(d->nifp, ri); in nm_nextpkt() local
995 if (!nm_ring_empty(ring)) { in nm_nextpkt()
996 u_int i = ring->cur; in nm_nextpkt()
997 u_int idx = ring->slot[i].buf_idx; in nm_nextpkt()
998 u_char *buf = (u_char *)NETMAP_BUF(ring, idx); in nm_nextpkt()
1001 hdr->ts = ring->ts; in nm_nextpkt()
1002 hdr->len = hdr->caplen = ring->slot[i].len; in nm_nextpkt()
1003 ring->cur = nm_ring_next(ring, i); in nm_nextpkt()
1008 ring->head = ring->cur; in nm_nextpkt()