Lines Matching refs:buf

48     struct buffer *buf;  in buf_initialize()  local
50 buf = xmalloc (sizeof (struct buffer)); in buf_initialize()
51 buf->data = NULL; in buf_initialize()
52 buf->last = NULL; in buf_initialize()
53 buf->nonblocking = false; in buf_initialize()
54 buf->input = input; in buf_initialize()
55 buf->output = output; in buf_initialize()
56 buf->flush = flush; in buf_initialize()
57 buf->block = block; in buf_initialize()
58 buf->get_fd = get_fd; in buf_initialize()
59 buf->shutdown = shutdown; in buf_initialize()
60 buf->memory_error = memory_error ? memory_error : buf_default_memory_error; in buf_initialize()
61 buf->closure = closure; in buf_initialize()
62 return buf; in buf_initialize()
69 buf_free (struct buffer *buf) in buf_free() argument
71 if (buf->closure != NULL) in buf_free()
73 free (buf->closure); in buf_free()
74 buf->closure = NULL; in buf_free()
76 buf_free_data (buf); in buf_free()
77 free (buf); in buf_free()
93 buf_default_memory_error (struct buffer *buf) in buf_default_memory_error() argument
117 buf_empty (buf) in buf_empty() argument
118 struct buffer *buf; in buf_empty()
123 buf_input_data (buf, NULL);
124 return buf_empty_p (buf);
131 buf_empty_p (struct buffer *buf) in buf_empty_p() argument
135 for (data = buf->data; data != NULL; data = data->next) in buf_empty_p()
149 buf_count_mem (struct buffer *buf) in buf_count_mem() argument
154 for (data = buf->data; data != NULL; data = data->next) in buf_count_mem()
165 buf_output (struct buffer *buf, const char *data, size_t len) in buf_output() argument
167 if (buf->data != NULL in buf_output()
168 && (((buf->last->text + BUFFER_DATA_SIZE) in buf_output()
169 - (buf->last->bufp + buf->last->size)) in buf_output()
172 memcpy (buf->last->bufp + buf->last->size, data, len); in buf_output()
173 buf->last->size += len; in buf_output()
184 (*buf->memory_error) (buf); in buf_output()
188 if (buf->data == NULL) in buf_output()
189 buf->data = newdata; in buf_output()
191 buf->last->next = newdata; in buf_output()
193 buf->last = newdata; in buf_output()
218 buf_output0 (struct buffer *buf, const char *string) in buf_output0() argument
220 buf_output (buf, string, strlen (string)); in buf_output0()
227 buf_append_char (struct buffer *buf, int ch) in buf_append_char() argument
229 if (buf->data != NULL in buf_append_char()
230 && (buf->last->text + BUFFER_DATA_SIZE in buf_append_char()
231 != buf->last->bufp + buf->last->size)) in buf_append_char()
233 *(buf->last->bufp + buf->last->size) = ch; in buf_append_char()
234 ++buf->last->size; in buf_append_char()
241 buf_output (buf, &b, 1); in buf_append_char()
273 buf_send_output (struct buffer *buf) in buf_send_output() argument
275 assert (buf->output != NULL); in buf_send_output()
277 while (buf->data != NULL) in buf_send_output()
281 data = buf->data; in buf_send_output()
288 status = (*buf->output) (buf->closure, data->bufp, data->size, in buf_send_output()
293 buf_free_data (buf); in buf_send_output()
303 assert (buf->nonblocking); in buf_send_output()
312 buf->data = data->next; in buf_send_output()
316 buf->last = NULL; in buf_send_output()
330 buf_flush (struct buffer *buf, bool block) in buf_flush() argument
335 assert (buf->flush != NULL); in buf_flush()
337 nonblocking = buf->nonblocking; in buf_flush()
340 status = set_block (buf); in buf_flush()
345 status = buf_send_output (buf); in buf_flush()
347 status = (*buf->flush) (buf->closure); in buf_flush()
353 blockstat = set_nonblock (buf); in buf_flush()
368 set_nonblock (struct buffer *buf) in set_nonblock() argument
372 if (buf->nonblocking) in set_nonblock()
374 assert (buf->block != NULL); in set_nonblock()
375 status = (*buf->block) (buf->closure, 0); in set_nonblock()
378 buf->nonblocking = true; in set_nonblock()
389 set_block (struct buffer *buf) in set_block() argument
393 if (! buf->nonblocking) in set_block()
395 assert (buf->block != NULL); in set_block()
396 status = (*buf->block) (buf->closure, 1); in set_block()
399 buf->nonblocking = false; in set_block()
413 buf_send_counted (struct buffer *buf) in buf_send_counted() argument
419 for (data = buf->data; data != NULL; data = data->next) in buf_send_counted()
425 (*buf->memory_error) (buf); in buf_send_counted()
429 data->next = buf->data; in buf_send_counted()
430 buf->data = data; in buf_send_counted()
431 if (buf->last == NULL) in buf_send_counted()
432 buf->last = data; in buf_send_counted()
439 return buf_send_output (buf); in buf_send_counted()
453 buf_send_special_count (struct buffer *buf, int count) in buf_send_special_count() argument
460 (*buf->memory_error) (buf); in buf_send_special_count()
464 data->next = buf->data; in buf_send_special_count()
465 buf->data = data; in buf_send_special_count()
466 if (buf->last == NULL) in buf_send_special_count()
467 buf->last = data; in buf_send_special_count()
474 return buf_send_output (buf); in buf_send_special_count()
481 buf_append_data (struct buffer *buf, struct buffer_data *data, in buf_append_data() argument
486 if (buf->data == NULL) in buf_append_data()
487 buf->data = data; in buf_append_data()
489 buf->last->next = data; in buf_append_data()
490 buf->last = last; in buf_append_data()
503 buf_copy_data (struct buffer *buf, struct buffer_data *data, in buf_copy_data() argument
508 assert (buf); in buf_copy_data()
529 buf_append_data (buf, first, new); in buf_copy_data()
700 buf_chain_length (struct buffer_data *buf) in buf_chain_length() argument
703 while (buf) in buf_chain_length()
705 size += buf->size; in buf_chain_length()
706 buf = buf->next; in buf_chain_length()
715 buf_length (struct buffer *buf) in buf_length() argument
717 return buf_chain_length (buf->data); in buf_length()
730 buf_input_data (struct buffer *buf, size_t *countp) in buf_input_data() argument
732 assert (buf->input != NULL); in buf_input_data()
742 if (buf->data == NULL in buf_input_data()
743 || (buf->last->bufp + buf->last->size in buf_input_data()
744 == buf->last->text + BUFFER_DATA_SIZE)) in buf_input_data()
751 (*buf->memory_error) (buf); in buf_input_data()
755 if (buf->data == NULL) in buf_input_data()
756 buf->data = data; in buf_input_data()
758 buf->last->next = data; in buf_input_data()
760 buf->last = data; in buf_input_data()
766 get = ((buf->last->text + BUFFER_DATA_SIZE) in buf_input_data()
767 - (buf->last->bufp + buf->last->size)); in buf_input_data()
769 status = (*buf->input) (buf->closure, in buf_input_data()
770 buf->last->bufp + buf->last->size, in buf_input_data()
775 buf->last->size += nbytes; in buf_input_data()
803 buf_read_line (struct buffer *buf, char **line, size_t *lenp) in buf_read_line() argument
805 return buf_read_short_line (buf, line, lenp, SIZE_MAX); in buf_read_line()
813 buf_read_short_line (struct buffer *buf, char **line, size_t *lenp, in buf_read_short_line() argument
816 assert (buf->input != NULL); in buf_read_short_line()
828 for (data = buf->data; data != NULL; data = data->next) in buf_read_short_line()
855 data = buf->data; in buf_read_short_line()
872 buf->data = data; in buf_read_short_line()
888 if (buf->data == NULL in buf_read_short_line()
889 || (buf->last->bufp + buf->last->size in buf_read_short_line()
890 == buf->last->text + BUFFER_DATA_SIZE)) in buf_read_short_line()
895 (*buf->memory_error) (buf); in buf_read_short_line()
899 if (buf->data == NULL) in buf_read_short_line()
900 buf->data = data; in buf_read_short_line()
902 buf->last->next = data; in buf_read_short_line()
904 buf->last = data; in buf_read_short_line()
910 mem = buf->last->bufp + buf->last->size; in buf_read_short_line()
911 size = (buf->last->text + BUFFER_DATA_SIZE) - mem; in buf_read_short_line()
917 status = (*buf->input) (buf->closure, mem, 1, size, &nbytes); in buf_read_short_line()
922 buf->last->size += nbytes; in buf_read_short_line()
952 buf_read_data (struct buffer *buf, size_t want, char **retdata, size_t *got) in buf_read_data() argument
954 assert (buf->input != NULL); in buf_read_data()
956 while (buf->data != NULL && buf->data->size == 0) in buf_read_data()
960 next = buf->data->next; in buf_read_data()
961 buf_free_datas (buf->data, buf->data); in buf_read_data()
962 buf->data = next; in buf_read_data()
964 buf->last = NULL; in buf_read_data()
967 if (buf->data == NULL) in buf_read_data()
976 (*buf->memory_error) (buf); in buf_read_data()
980 buf->data = data; in buf_read_data()
981 buf->last = data; in buf_read_data()
990 status = (*buf->input) (buf->closure, data->bufp, get, in buf_read_data()
998 *retdata = buf->data->bufp; in buf_read_data()
999 if (want < buf->data->size) in buf_read_data()
1002 buf->data->size -= want; in buf_read_data()
1003 buf->data->bufp += want; in buf_read_data()
1007 *got = buf->data->size; in buf_read_data()
1008 buf->data->size = 0; in buf_read_data()
1246 buf_get_fd (struct buffer *buf) in buf_get_fd() argument
1248 if (buf->get_fd) in buf_get_fd()
1249 return (*buf->get_fd) (buf->closure); in buf_get_fd()
1257 buf_shutdown (struct buffer *buf) in buf_shutdown() argument
1259 if (buf->shutdown) return (*buf->shutdown) (buf); in buf_shutdown()
1287 struct buffer *buf; member
1335 packetizing_buffer_initialize (struct buffer *buf, in packetizing_buffer_initialize() argument
1348 pb->buf = buf; in packetizing_buffer_initialize()
1423 status = buf_read_data (pb->buf, get, &bytes, &nread); in packetizing_buffer_input()
1473 (*pb->buf->memory_error) (pb->buf); in packetizing_buffer_input()
1482 status = buf_read_data (pb->buf, get, &bytes, &nread); in packetizing_buffer_input()
1535 (*pb->buf->memory_error) (pb->buf); in packetizing_buffer_input()
1632 (*pb->buf->memory_error) (pb->buf); in packetizing_buffer_output()
1655 buf_output (pb->buf, outbuf, translated + 2); in packetizing_buffer_output()
1659 buf_append_data (pb->buf, outdata, outdata); in packetizing_buffer_output()
1667 return buf_send_output (pb->buf); in packetizing_buffer_output()
1682 return buf_flush (pb->buf, 0); in packetizing_buffer_flush()
1694 return set_block (pb->buf); in packetizing_buffer_block()
1696 return set_nonblock (pb->buf); in packetizing_buffer_block()
1706 return buf_get_fd (cb->buf); in packetizing_buffer_get_fd()
1713 packetizing_buffer_shutdown (struct buffer *buf) in packetizing_buffer_shutdown() argument
1715 struct packetizing_buffer *pb = buf->closure; in packetizing_buffer_shutdown()
1717 return buf_shutdown (pb->buf); in packetizing_buffer_shutdown()
2055 fd_buffer_shutdown (struct buffer *buf) in fd_buffer_shutdown() argument
2057 struct fd_buffer *fb = buf->closure; in fd_buffer_shutdown()
2074 if (buf->flush) in fd_buffer_shutdown()
2076 buf_flush (buf, 1); in fd_buffer_shutdown()
2077 buf->flush = NULL; in fd_buffer_shutdown()
2080 if (buf->input) in fd_buffer_shutdown()
2127 buf->input = NULL; in fd_buffer_shutdown()
2129 else if (buf->output) in fd_buffer_shutdown()
2151 buf->output = NULL; in fd_buffer_shutdown()
2182 free (buf->closure); in fd_buffer_shutdown()
2183 buf->closure = NULL; in fd_buffer_shutdown()