Lines Matching refs:iov
80 struct vringh_kiov *iov, in vringh_iov_xfer() argument
88 while (len && iov->i < iov->used) { in vringh_iov_xfer()
91 partlen = min(iov->iov[iov->i].iov_len, len); in vringh_iov_xfer()
92 err = xfer(vrh, iov->iov[iov->i].iov_base, ptr, partlen); in vringh_iov_xfer()
98 iov->consumed += partlen; in vringh_iov_xfer()
99 iov->iov[iov->i].iov_len -= partlen; in vringh_iov_xfer()
100 iov->iov[iov->i].iov_base += partlen; in vringh_iov_xfer()
102 if (!iov->iov[iov->i].iov_len) { in vringh_iov_xfer()
104 iov->iov[iov->i].iov_len = iov->consumed; in vringh_iov_xfer()
105 iov->iov[iov->i].iov_base -= iov->consumed; in vringh_iov_xfer()
108 iov->consumed = 0; in vringh_iov_xfer()
109 iov->i++; in vringh_iov_xfer()
191 static int resize_iovec(struct vringh_kiov *iov, gfp_t gfp) in resize_iovec() argument
194 unsigned int flag, new_num = (iov->max_num & ~VRINGH_IOV_ALLOCATED) * 2; in resize_iovec()
199 flag = (iov->max_num & VRINGH_IOV_ALLOCATED); in resize_iovec()
201 new = krealloc(iov->iov, new_num * sizeof(struct iovec), gfp); in resize_iovec()
205 memcpy(new, iov->iov, in resize_iovec()
206 iov->max_num * sizeof(struct iovec)); in resize_iovec()
212 iov->iov = new; in resize_iovec()
213 iov->max_num = (new_num | flag); in resize_iovec()
298 struct vringh_kiov *iov; in __vringh_iov() local
346 iov = wiov; in __vringh_iov()
348 iov = riov; in __vringh_iov()
357 if (!iov) { in __vringh_iov()
375 if (unlikely(iov->used == (iov->max_num & ~VRINGH_IOV_ALLOCATED))) { in __vringh_iov()
376 err = resize_iovec(iov, gfp); in __vringh_iov()
381 iov->iov[iov->used].iov_base = addr; in __vringh_iov()
382 iov->iov[iov->used].iov_len = len; in __vringh_iov()
383 iov->used++; in __vringh_iov()
692 BUILD_BUG_ON(offsetof(struct vringh_kiov, iov) != in vringh_getdesc_user()
693 offsetof(struct vringh_iov, iov)); in vringh_getdesc_user()
1074 u64 addr, u64 len, struct bio_vec iov[], in iotlb_translate() argument
1103 iov[ret].bv_page = pfn_to_page(pfn); in iotlb_translate()
1104 iov[ret].bv_len = min(len - s, size); in iotlb_translate()
1105 iov[ret].bv_offset = pa & (PAGE_SIZE - 1); in iotlb_translate()
1118 struct bio_vec iov[16]; in copy_from_iotlb() local
1122 len, iov, 16, VHOST_MAP_RO); in copy_from_iotlb()
1126 iov_iter_bvec(&iter, READ, iov, ret, len); in copy_from_iotlb()
1137 struct bio_vec iov[16]; in copy_to_iotlb() local
1141 len, iov, 16, VHOST_MAP_WO); in copy_to_iotlb()
1145 iov_iter_bvec(&iter, WRITE, iov, ret, len); in copy_to_iotlb()
1153 struct bio_vec iov; in getu16_iotlb() local
1159 &iov, 1, VHOST_MAP_RO); in getu16_iotlb()
1163 kaddr = kmap_atomic(iov.bv_page); in getu16_iotlb()
1164 from = kaddr + iov.bv_offset; in getu16_iotlb()
1174 struct bio_vec iov; in putu16_iotlb() local
1180 &iov, 1, VHOST_MAP_WO); in putu16_iotlb()
1184 kaddr = kmap_atomic(iov.bv_page); in putu16_iotlb()
1185 to = kaddr + iov.bv_offset; in putu16_iotlb()