Lines Matching refs:size
211 static int do_send(struct libxenvchan *ctrl, const void *data, size_t size) in do_send() argument
215 if (avail_contig > size) in do_send()
216 avail_contig = size; in do_send()
219 if (avail_contig < size) in do_send()
222 memcpy(wr_ring(ctrl), data + avail_contig, size - avail_contig); in do_send()
225 wr_prod(ctrl) += size; in do_send()
228 return size; in do_send()
234 int libxenvchan_send(struct libxenvchan *ctrl, const void *data, size_t size) in libxenvchan_send() argument
240 avail = fast_get_buffer_space(ctrl, size); in libxenvchan_send()
241 if (size <= avail) in libxenvchan_send()
242 return do_send(ctrl, data, size); in libxenvchan_send()
245 if (size > wr_ring_size(ctrl)) in libxenvchan_send()
252 int libxenvchan_write(struct libxenvchan *ctrl, const void *data, size_t size) in libxenvchan_write() argument
260 avail = fast_get_buffer_space(ctrl, size - pos); in libxenvchan_write()
261 if (pos + avail > size) in libxenvchan_write()
262 avail = size - pos; in libxenvchan_write()
265 if (pos == size) in libxenvchan_write()
273 avail = fast_get_buffer_space(ctrl, size); in libxenvchan_write()
274 if (size > avail) in libxenvchan_write()
275 size = avail; in libxenvchan_write()
276 if (size == 0) in libxenvchan_write()
278 return do_send(ctrl, data, size); in libxenvchan_write()
287 static int do_recv(struct libxenvchan *ctrl, void *data, size_t size) in do_recv() argument
291 if (avail_contig > size) in do_recv()
292 avail_contig = size; in do_recv()
295 if (avail_contig < size) in do_recv()
298 memcpy(data + avail_contig, rd_ring(ctrl), size - avail_contig); in do_recv()
301 rd_cons(ctrl) += size; in do_recv()
304 return size; in do_recv()
311 int libxenvchan_recv(struct libxenvchan *ctrl, void *data, size_t size) in libxenvchan_recv() argument
314 int avail = fast_get_data_ready(ctrl, size); in libxenvchan_recv()
315 if (size <= avail) in libxenvchan_recv()
316 return do_recv(ctrl, data, size); in libxenvchan_recv()
321 if (size > rd_ring_size(ctrl)) in libxenvchan_recv()
328 int libxenvchan_read(struct libxenvchan *ctrl, void *data, size_t size) in libxenvchan_read() argument
331 int avail = fast_get_data_ready(ctrl, size); in libxenvchan_read()
332 if (avail && size > avail) in libxenvchan_read()
333 size = avail; in libxenvchan_read()
335 return do_recv(ctrl, data, size); in libxenvchan_read()