Home | History | Annotate | Download | only in slirp

Lines Matching refs:iov

88 size_t sopreprbuf(struct socket *so, struct iovec *iov, int *np)
103 iov[0].iov_base = sb->sb_wptr;
104 iov[1].iov_base = NULL;
105 iov[1].iov_len = 0;
107 iov[0].iov_len = sb->sb_rptr - sb->sb_wptr;
109 if (iov[0].iov_len > len)
110 iov[0].iov_len = len;
111 if (iov[0].iov_len > mss)
112 iov[0].iov_len -= iov[0].iov_len%mss;
115 iov[0].iov_len = (sb->sb_data + sb->sb_datalen) - sb->sb_wptr;
117 if (iov[0].iov_len > len) iov[0].iov_len = len;
118 len -= iov[0].iov_len;
120 iov[1].iov_base = sb->sb_data;
121 iov[1].iov_len = sb->sb_rptr - sb->sb_data;
122 if(iov[1].iov_len > len)
123 iov[1].iov_len = len;
124 total = iov[0].iov_len + iov[1].iov_len;
127 if (iov[1].iov_len > lss) {
128 iov[1].iov_len -= lss;
131 lss -= iov[1].iov_len;
132 iov[0].iov_len -= lss;
138 if (iov[0].iov_len > mss)
139 iov[0].iov_len -= iov[0].iov_len%mss;
146 return iov[0].iov_len + (n - 1) * iov[1].iov_len;
159 struct iovec iov[2];
168 sopreprbuf(so, iov, &n);
171 nn = readv(so->s, (struct iovec *)iov, n);
174 nn = recv(so->s, iov[0].iov_base, iov[0].iov_len,0);
197 if (n == 2 && nn == iov[0].iov_len) {
199 ret = recv(so->s, iov[1].iov_base, iov[1].iov_len,0);
219 struct iovec iov[2];
228 if (sopreprbuf(so, iov, &n) < size)
231 nn = MIN(iov[0].iov_len, copy);
232 memcpy(iov[0].iov_base, buf, nn);
240 memcpy(iov[1].iov_base, buf, copy);
355 struct iovec iov[2];
373 iov[0].iov_base = sb->sb_rptr;
374 iov[1].iov_base = NULL;
375 iov[1].iov_len = 0;
377 iov[0].iov_len = sb->sb_wptr - sb->sb_rptr;
379 if (iov[0].iov_len > len) iov[0].iov_len = len;
382 iov[0].iov_len = (sb->sb_data + sb->sb_datalen) - sb->sb_rptr;
383 if (iov[0].iov_len > len) iov[0].iov_len = len;
384 len -= iov[0].iov_len;
386 iov[1].iov_base = sb->sb_data;
387 iov[1].iov_len = sb->sb_wptr - sb->sb_data;
388 if (iov[1].iov_len > len) iov[1].iov_len = len;
396 nn = writev(so->s, (const struct iovec *)iov, n);
400 nn = slirp_send(so, iov[0].iov_base, iov[0].iov_len,0);
415 if (n == 2 && nn == iov[0].iov_len) {
417 ret = slirp_send(so, iov[1].iov_base, iov[1].iov_len,0);