Lines Matching refs:copy

352 sum_iovec_len(struct mic_copy_desc *copy)  in sum_iovec_len()  argument
357 for (i = 0; i < copy->iovcnt; i++) in sum_iovec_len()
358 sum += copy->iov[i].iov_len; in sum_iovec_len()
363 struct mic_copy_desc *copy) in verify_out_len() argument
365 if (copy->out_len != sum_iovec_len(copy)) { in verify_out_len()
368 copy->out_len, sum_iovec_len(copy)); in verify_out_len()
369 assert(copy->out_len == sum_iovec_len(copy)); in verify_out_len()
375 disp_iovec(struct mic_info *mic, struct mic_copy_desc *copy, in disp_iovec() argument
380 for (i = 0; i < copy->iovcnt; i++) in disp_iovec()
383 copy->iov[i].iov_base, copy->iov[i].iov_len); in disp_iovec()
392 struct mic_copy_desc *copy, ssize_t len) in txrx_prepare() argument
394 copy->vr_idx = tx ? 0 : 1; in txrx_prepare()
395 copy->update_used = true; in txrx_prepare()
397 copy->iov[1].iov_len = len - sizeof(struct virtio_net_hdr); in txrx_prepare()
399 copy->iov[0].iov_len = len; in txrx_prepare()
405 struct mic_vring *vr, struct mic_copy_desc *copy) in mic_virtio_copy() argument
409 ret = ioctl(fd, MIC_VIRTIO_COPY_DESC, copy); in mic_virtio_copy()
536 struct mic_copy_desc copy; in virtio_net() local
562 copy.iovcnt = 2; in virtio_net()
586 copy.iov = iov0; in virtio_net()
588 copy.iov, copy.iovcnt); in virtio_net()
600 copy.out_len, hdr->gso_type); in virtio_net()
603 disp_iovec(mic, copy, __func__, __LINE__); in virtio_net()
609 txrx_prepare(VIRTIO_ID_NET, 1, &tx_vr, &copy, in virtio_net()
614 &copy); in virtio_net()
621 verify_out_len(mic, &copy); in virtio_net()
623 disp_iovec(mic, copy, __func__, __LINE__); in virtio_net()
626 sum_iovec_len(&copy)); in virtio_net()
631 disp_iovec(mic, &copy, __func__, __LINE__); in virtio_net()
635 copy.iovcnt, sum_iovec_len(&copy)); in virtio_net()
646 copy.iov = iov1; in virtio_net()
647 txrx_prepare(VIRTIO_ID_NET, 0, &rx_vr, &copy, in virtio_net()
653 &copy); in virtio_net()
664 copy.out_len, in virtio_net()
668 iov1[1].iov_len = copy.out_len - in virtio_net()
670 verify_out_len(mic, &copy); in virtio_net()
672 disp_iovec(mic, copy, __func__, in virtio_net()
677 sum_iovec_len(copy)); in virtio_net()
680 copy.iov, copy.iovcnt); in virtio_net()
681 if (len != sum_iovec_len(&copy)) { in virtio_net()
686 sum_iovec_len(&copy)); in virtio_net()
689 disp_iovec(mic, &copy, __func__, in virtio_net()
735 struct mic_copy_desc copy; in virtio_console() local
777 copy.iovcnt = 1; in virtio_console()
795 copy.iov = iov0; in virtio_console()
796 len = readv(pty_fd, copy.iov, copy.iovcnt); in virtio_console()
799 disp_iovec(mic, copy, __func__, __LINE__); in virtio_console()
806 &copy, len); in virtio_console()
810 &tx_vr, &copy); in virtio_console()
817 verify_out_len(mic, &copy); in virtio_console()
819 disp_iovec(mic, copy, __func__, __LINE__); in virtio_console()
822 sum_iovec_len(copy)); in virtio_console()
827 disp_iovec(mic, &copy, __func__, __LINE__); in virtio_console()
832 copy.iovcnt, sum_iovec_len(&copy)); in virtio_console()
839 copy.iov = iov1; in virtio_console()
841 &copy, PAGE_SIZE); in virtio_console()
845 &rx_vr, &copy); in virtio_console()
848 iov1->iov_len = copy.out_len; in virtio_console()
849 verify_out_len(mic, &copy); in virtio_console()
851 disp_iovec(mic, copy, __func__, in virtio_console()
856 sum_iovec_len(copy)); in virtio_console()
859 copy.iov, copy.iovcnt); in virtio_console()
860 if (len != sum_iovec_len(&copy)) { in virtio_console()
865 sum_iovec_len(&copy)); in virtio_console()
868 disp_iovec(mic, copy, __func__, in virtio_console()
1085 struct mic_copy_desc copy; in read_header() local
1089 copy.iov = &iovec; in read_header()
1090 copy.iovcnt = 1; in read_header()
1091 copy.vr_idx = 0; /* only one vring on virtio_block */ in read_header()
1092 copy.update_used = false; /* do not update used index */ in read_header()
1093 return ioctl(fd, MIC_VIRTIO_COPY_DESC, &copy); in read_header()
1099 struct mic_copy_desc copy; in transfer_blocks() local
1101 copy.iov = iovec; in transfer_blocks()
1102 copy.iovcnt = iovcnt; in transfer_blocks()
1103 copy.vr_idx = 0; /* only one vring on virtio_block */ in transfer_blocks()
1104 copy.update_used = false; /* do not update used index */ in transfer_blocks()
1105 return ioctl(fd, MIC_VIRTIO_COPY_DESC, &copy); in transfer_blocks()
1123 struct mic_copy_desc copy; in write_status() local
1127 copy.iov = &iovec; in write_status()
1128 copy.iovcnt = 1; in write_status()
1129 copy.vr_idx = 0; /* only one vring on virtio_block */ in write_status()
1130 copy.update_used = true; /* Update used index */ in write_status()
1131 return ioctl(fd, MIC_VIRTIO_COPY_DESC, &copy); in write_status()