Lines Matching full:off

162 static void xsk_mmap_offsets_v1(struct xdp_mmap_offsets *off)  in xsk_mmap_offsets_v1()  argument
170 memcpy(&off_v1, off, sizeof(off_v1)); in xsk_mmap_offsets_v1()
172 off->rx.producer = off_v1.rx.producer; in xsk_mmap_offsets_v1()
173 off->rx.consumer = off_v1.rx.consumer; in xsk_mmap_offsets_v1()
174 off->rx.desc = off_v1.rx.desc; in xsk_mmap_offsets_v1()
175 off->rx.flags = off_v1.rx.consumer + sizeof(__u32); in xsk_mmap_offsets_v1()
177 off->tx.producer = off_v1.tx.producer; in xsk_mmap_offsets_v1()
178 off->tx.consumer = off_v1.tx.consumer; in xsk_mmap_offsets_v1()
179 off->tx.desc = off_v1.tx.desc; in xsk_mmap_offsets_v1()
180 off->tx.flags = off_v1.tx.consumer + sizeof(__u32); in xsk_mmap_offsets_v1()
182 off->fr.producer = off_v1.fr.producer; in xsk_mmap_offsets_v1()
183 off->fr.consumer = off_v1.fr.consumer; in xsk_mmap_offsets_v1()
184 off->fr.desc = off_v1.fr.desc; in xsk_mmap_offsets_v1()
185 off->fr.flags = off_v1.fr.consumer + sizeof(__u32); in xsk_mmap_offsets_v1()
187 off->cr.producer = off_v1.cr.producer; in xsk_mmap_offsets_v1()
188 off->cr.consumer = off_v1.cr.consumer; in xsk_mmap_offsets_v1()
189 off->cr.desc = off_v1.cr.desc; in xsk_mmap_offsets_v1()
190 off->cr.flags = off_v1.cr.consumer + sizeof(__u32); in xsk_mmap_offsets_v1()
193 static int xsk_get_mmap_offsets(int fd, struct xdp_mmap_offsets *off) in xsk_get_mmap_offsets() argument
198 optlen = sizeof(*off); in xsk_get_mmap_offsets()
199 err = getsockopt(fd, SOL_XDP, XDP_MMAP_OFFSETS, off, &optlen); in xsk_get_mmap_offsets()
203 if (optlen == sizeof(*off)) in xsk_get_mmap_offsets()
207 xsk_mmap_offsets_v1(off); in xsk_get_mmap_offsets()
218 struct xdp_mmap_offsets off; in xsk_create_umem_rings() local
234 err = xsk_get_mmap_offsets(fd, &off); in xsk_create_umem_rings()
238 map = mmap(NULL, off.fr.desc + umem->config.fill_size * sizeof(__u64), in xsk_create_umem_rings()
246 fill->producer = map + off.fr.producer; in xsk_create_umem_rings()
247 fill->consumer = map + off.fr.consumer; in xsk_create_umem_rings()
248 fill->flags = map + off.fr.flags; in xsk_create_umem_rings()
249 fill->ring = map + off.fr.desc; in xsk_create_umem_rings()
252 map = mmap(NULL, off.cr.desc + umem->config.comp_size * sizeof(__u64), in xsk_create_umem_rings()
262 comp->producer = map + off.cr.producer; in xsk_create_umem_rings()
263 comp->consumer = map + off.cr.consumer; in xsk_create_umem_rings()
264 comp->flags = map + off.cr.flags; in xsk_create_umem_rings()
265 comp->ring = map + off.cr.desc; in xsk_create_umem_rings()
270 munmap(map, off.fr.desc + umem->config.fill_size * sizeof(__u64)); in xsk_create_umem_rings()
633 struct xdp_mmap_offsets off; in xsk_put_ctx() local
637 err = xsk_get_mmap_offsets(umem->fd, &off); in xsk_put_ctx()
639 munmap(ctx->fill->ring - off.fr.desc, in xsk_put_ctx()
640 off.fr.desc + umem->config.fill_size * in xsk_put_ctx()
642 munmap(ctx->comp->ring - off.cr.desc, in xsk_put_ctx()
643 off.cr.desc + umem->config.comp_size * in xsk_put_ctx()
703 struct xdp_mmap_offsets off; in xsk_socket__create_shared() local
771 err = xsk_get_mmap_offsets(xsk->fd, &off); in xsk_socket__create_shared()
778 rx_map = mmap(NULL, off.rx.desc + in xsk_socket__create_shared()
789 rx->producer = rx_map + off.rx.producer; in xsk_socket__create_shared()
790 rx->consumer = rx_map + off.rx.consumer; in xsk_socket__create_shared()
791 rx->flags = rx_map + off.rx.flags; in xsk_socket__create_shared()
792 rx->ring = rx_map + off.rx.desc; in xsk_socket__create_shared()
799 tx_map = mmap(NULL, off.tx.desc + in xsk_socket__create_shared()
810 tx->producer = tx_map + off.tx.producer; in xsk_socket__create_shared()
811 tx->consumer = tx_map + off.tx.consumer; in xsk_socket__create_shared()
812 tx->flags = tx_map + off.tx.flags; in xsk_socket__create_shared()
813 tx->ring = tx_map + off.tx.desc; in xsk_socket__create_shared()
851 munmap(tx_map, off.tx.desc + in xsk_socket__create_shared()
855 munmap(rx_map, off.rx.desc + in xsk_socket__create_shared()
894 struct xdp_mmap_offsets off; in xsk_socket__delete() local
909 err = xsk_get_mmap_offsets(xsk->fd, &off); in xsk_socket__delete()
912 munmap(xsk->rx->ring - off.rx.desc, in xsk_socket__delete()
913 off.rx.desc + xsk->config.rx_size * desc_sz); in xsk_socket__delete()
916 munmap(xsk->tx->ring - off.tx.desc, in xsk_socket__delete()
917 off.tx.desc + xsk->config.tx_size * desc_sz); in xsk_socket__delete()