| 232 | } |
| 233 | |
| 234 | static inline void |
| 235 | do_data_copy_enqueue(struct virtio_net *dev, struct vhost_virtqueue *vq) |
| 236 | __rte_shared_locks_required(&vq->iotlb_lock) |
| 237 | { |
| 238 | struct batch_copy_elem *elem = vq->batch_copy_elems; |
| 239 | uint16_t count = vq->batch_copy_nb_elems; |
| 240 | int i; |
| 241 | |
| 242 | for (i = 0; i < count; i++) { |
| 243 | rte_memcpy(elem[i].dst, elem[i].src, elem[i].len); |
| 244 | vhost_log_cache_write_iova(dev, vq, elem[i].log_addr, |
| 245 | elem[i].len); |
| 246 | PRINT_PACKET(dev, (uintptr_t)elem[i].dst, elem[i].len, 0); |
| 247 | } |
| 248 | |
| 249 | vq->batch_copy_nb_elems = 0; |
| 250 | } |
| 251 | |
| 252 | static inline void |
| 253 | do_data_copy_dequeue(struct vhost_virtqueue *vq) |
no test coverage detected