Lines Matching refs:sg

15 	if (msg->sg.end > msg->sg.start &&
16 elem_first_coalesce < msg->sg.end)
19 if (msg->sg.end < msg->sg.start &&
20 (elem_first_coalesce > msg->sg.start ||
21 elem_first_coalesce < msg->sg.end))
31 u32 osize = msg->sg.size;
34 len -= msg->sg.size;
52 i = msg->sg.end;
54 sge = &msg->sg.data[i];
66 sge = &msg->sg.data[msg->sg.end];
74 msg->sg.size += use;
90 int i = src->sg.start;
100 if (i == src->sg.end && off)
110 if (dst->sg.end)
111 sgd = sk_msg_elem(dst, dst->sg.end - 1);
117 dst->sg.size += sge_len;
129 if (i == src->sg.end && len)
140 int i = msg->sg.start;
157 } while (bytes && i != msg->sg.end);
158 msg->sg.start = i;
164 int i = msg->sg.start;
167 struct scatterlist *sge = &msg->sg.data[i];
173 } while (i != msg->sg.end);
199 while (msg->sg.size) {
200 msg->sg.size -= sge->length;
203 sk_msg_check_to_free(msg, i, msg->sg.size);
213 return __sk_msg_free(sk, msg, msg->sg.start, false);
219 return __sk_msg_free(sk, msg, msg->sg.start, true);
227 u32 i = msg->sg.start;
238 msg->sg.size -= bytes;
242 msg->sg.size -= sge->length;
248 msg->sg.start = i;
265 int trim = msg->sg.size - len;
266 u32 i = msg->sg.end;
274 msg->sg.size = len;
275 while (msg->sg.data[i].length &&
276 trim >= msg->sg.data[i].length) {
277 trim -= msg->sg.data[i].length;
284 msg->sg.data[i].length -= trim;
287 if (msg->sg.curr == i && msg->sg.copybreak > msg->sg.data[i].length)
288 msg->sg.copybreak = msg->sg.data[i].length;
291 msg->sg.end = i;
293 /* If we trim data a full sg elem before curr pointer update
299 if (!msg->sg.size) {
300 msg->sg.curr = msg->sg.start;
301 msg->sg.copybreak = 0;
302 } else if (sk_msg_iter_dist(msg->sg.start, msg->sg.curr) >=
303 sk_msg_iter_dist(msg->sg.start, msg->sg.end)) {
305 msg->sg.curr = i;
306 msg->sg.copybreak = msg->sg.data[i].length;
319 orig = msg->sg.size;
336 msg->sg.size += copied;
340 sg_set_page(&msg->sg.data[msg->sg.end],
342 sg_unmark_end(&msg->sg.data[msg->sg.end]);
355 msg->sg.copybreak = 0;
356 msg->sg.curr = msg->sg.end;
363 iov_iter_revert(from, msg->sg.size - orig);
371 int ret = -ENOSPC, i = msg->sg.curr;
379 if (msg->sg.copybreak >= sge->length) {
380 msg->sg.copybreak = 0;
382 if (i == msg->sg.end)
387 buf_size = sge->length - msg->sg.copybreak;
389 to = sg_virt(sge) + msg->sg.copybreak;
390 msg->sg.copybreak += copy;
402 msg->sg.copybreak = 0;
404 } while (i != msg->sg.end);
406 msg->sg.curr = i;
427 i = msg_rx->sg.start;
449 msg_rx->sg.size -= copy;
467 } while ((i != msg_rx->sg.end) && !sg_is_last(sge));
476 msg_rx->sg.start = i;
477 if (!sge->length && (i == msg_rx->sg.end || sg_is_last(sge))) {
509 sg_init_marker(msg->sg.data, NR_MSG_FRAG_IDS);
533 num_sge = skb_to_sgvec(skb, msg->sg.data, off, len);
543 num_sge = skb_to_sgvec(skb, msg->sg.data, off, len);
549 msg->sg.start = 0;
550 msg->sg.size = copied;
551 msg->sg.end = num_sge;