Lines Matching refs:buf

56           struct ibuf         *buf;  in ibuf_open()  local
62 if ((buf = calloc(1, sizeof(struct ibuf))) == NULL) in ibuf_open()
64 if ((buf->buf = calloc(len, 1)) == NULL) { in ibuf_open()
65 free(buf); in ibuf_open()
68 buf->size = buf->max = len; in ibuf_open()
69 buf->fd = -1; in ibuf_open()
71 return (buf); in ibuf_open()
77 struct ibuf *buf; in ibuf_dynamic() local
84 if ((buf = calloc(1, sizeof(struct ibuf))) == NULL) in ibuf_dynamic()
87 if ((buf->buf = calloc(len, 1)) == NULL) { in ibuf_dynamic()
88 free(buf); in ibuf_dynamic()
92 buf->size = len; in ibuf_dynamic()
93 buf->max = max; in ibuf_dynamic()
94 buf->fd = -1; in ibuf_dynamic()
96 return (buf); in ibuf_dynamic()
100 ibuf_realloc(struct ibuf *buf, size_t len) in ibuf_realloc() argument
105 if (len > SIZE_MAX - buf->wpos || buf->wpos + len > buf->max) { in ibuf_realloc()
110 b = recallocarray(buf->buf, buf->size, buf->wpos + len, 1); in ibuf_realloc()
113 buf->buf = b; in ibuf_realloc()
114 buf->size = buf->wpos + len; in ibuf_realloc()
120 ibuf_reserve(struct ibuf *buf, size_t len) in ibuf_reserve() argument
124 if (len > SIZE_MAX - buf->wpos || buf->max == 0) { in ibuf_reserve()
129 if (buf->wpos + len > buf->size) in ibuf_reserve()
130 if (ibuf_realloc(buf, len) == -1) in ibuf_reserve()
133 b = buf->buf + buf->wpos; in ibuf_reserve()
134 buf->wpos += len; in ibuf_reserve()
139 ibuf_add(struct ibuf *buf, const void *data, size_t len) in ibuf_add() argument
143 if ((b = ibuf_reserve(buf, len)) == NULL) in ibuf_add()
151 ibuf_add_ibuf(struct ibuf *buf, const struct ibuf *from) in ibuf_add_ibuf() argument
153 return ibuf_add(buf, ibuf_data(from), ibuf_size(from)); in ibuf_add_ibuf()
158 ibuf_add_buf(struct ibuf *buf, const struct ibuf *from) in ibuf_add_buf() argument
160 return ibuf_add_ibuf(buf, from); in ibuf_add_buf()
164 ibuf_add_n8(struct ibuf *buf, uint64_t value) in ibuf_add_n8() argument
173 return ibuf_add(buf, &v, sizeof(v)); in ibuf_add_n8()
177 ibuf_add_n16(struct ibuf *buf, uint64_t value) in ibuf_add_n16() argument
186 return ibuf_add(buf, &v, sizeof(v)); in ibuf_add_n16()
190 ibuf_add_n32(struct ibuf *buf, uint64_t value) in ibuf_add_n32() argument
199 return ibuf_add(buf, &v, sizeof(v)); in ibuf_add_n32()
203 ibuf_add_n64(struct ibuf *buf, uint64_t value) in ibuf_add_n64() argument
206 return ibuf_add(buf, &value, sizeof(value)); in ibuf_add_n64()
210 ibuf_add_h16(struct ibuf *buf, uint64_t value) in ibuf_add_h16() argument
219 return ibuf_add(buf, &v, sizeof(v)); in ibuf_add_h16()
223 ibuf_add_h32(struct ibuf *buf, uint64_t value) in ibuf_add_h32() argument
232 return ibuf_add(buf, &v, sizeof(v)); in ibuf_add_h32()
236 ibuf_add_h64(struct ibuf *buf, uint64_t value) in ibuf_add_h64() argument
238 return ibuf_add(buf, &value, sizeof(value)); in ibuf_add_h64()
242 ibuf_add_zero(struct ibuf *buf, size_t len) in ibuf_add_zero() argument
246 if ((b = ibuf_reserve(buf, len)) == NULL) in ibuf_add_zero()
253 ibuf_seek(struct ibuf *buf, size_t pos, size_t len) in ibuf_seek() argument
256 if (ibuf_size(buf) < pos || SIZE_MAX - pos < len || in ibuf_seek()
257 ibuf_size(buf) < pos + len) { in ibuf_seek()
262 return (buf->buf + buf->rpos + pos); in ibuf_seek()
266 ibuf_set(struct ibuf *buf, size_t pos, const void *data, size_t len) in ibuf_set() argument
270 if ((b = ibuf_seek(buf, pos, len)) == NULL) in ibuf_set()
278 ibuf_set_n8(struct ibuf *buf, size_t pos, uint64_t value) in ibuf_set_n8() argument
287 return (ibuf_set(buf, pos, &v, sizeof(v))); in ibuf_set_n8()
291 ibuf_set_n16(struct ibuf *buf, size_t pos, uint64_t value) in ibuf_set_n16() argument
300 return (ibuf_set(buf, pos, &v, sizeof(v))); in ibuf_set_n16()
304 ibuf_set_n32(struct ibuf *buf, size_t pos, uint64_t value) in ibuf_set_n32() argument
313 return (ibuf_set(buf, pos, &v, sizeof(v))); in ibuf_set_n32()
317 ibuf_set_n64(struct ibuf *buf, size_t pos, uint64_t value) in ibuf_set_n64() argument
320 return (ibuf_set(buf, pos, &value, sizeof(value))); in ibuf_set_n64()
324 ibuf_set_h16(struct ibuf *buf, size_t pos, uint64_t value) in ibuf_set_h16() argument
333 return (ibuf_set(buf, pos, &v, sizeof(v))); in ibuf_set_h16()
337 ibuf_set_h32(struct ibuf *buf, size_t pos, uint64_t value) in ibuf_set_h32() argument
346 return (ibuf_set(buf, pos, &v, sizeof(v))); in ibuf_set_h32()
350 ibuf_set_h64(struct ibuf *buf, size_t pos, uint64_t value) in ibuf_set_h64() argument
352 return (ibuf_set(buf, pos, &value, sizeof(value))); in ibuf_set_h64()
356 ibuf_data(const struct ibuf *buf) in ibuf_data() argument
358 return (buf->buf + buf->rpos); in ibuf_data()
362 ibuf_size(const struct ibuf *buf) in ibuf_size() argument
364 return (buf->wpos - buf->rpos); in ibuf_size()
368 ibuf_left(const struct ibuf *buf) in ibuf_left() argument
370 if (buf->max == 0) in ibuf_left()
372 return (buf->max - buf->wpos); in ibuf_left()
376 ibuf_truncate(struct ibuf *buf, size_t len) in ibuf_truncate() argument
378 if (ibuf_size(buf) >= len) { in ibuf_truncate()
379 buf->wpos = buf->rpos + len; in ibuf_truncate()
382 if (buf->max == 0) { in ibuf_truncate()
387 return ibuf_add_zero(buf, len - ibuf_size(buf)); in ibuf_truncate()
391 ibuf_rewind(struct ibuf *buf) in ibuf_rewind() argument
393 buf->rpos = 0; in ibuf_rewind()
397 ibuf_close(struct msgbuf *msgbuf, struct ibuf *buf) in ibuf_close() argument
399 ibuf_enqueue(msgbuf, buf); in ibuf_close()
403 ibuf_from_buffer(struct ibuf *buf, void *data, size_t len) in ibuf_from_buffer() argument
405 memset(buf, 0, sizeof(*buf)); in ibuf_from_buffer()
406 buf->buf = data; in ibuf_from_buffer()
407 buf->size = buf->wpos = len; in ibuf_from_buffer()
408 buf->fd = -1; in ibuf_from_buffer()
412 ibuf_from_ibuf(struct ibuf *buf, const struct ibuf *from) in ibuf_from_ibuf() argument
414 ibuf_from_buffer(buf, ibuf_data(from), ibuf_size(from)); in ibuf_from_ibuf()
418 ibuf_get(struct ibuf *buf, void *data, size_t len) in ibuf_get() argument
420 if (ibuf_size(buf) < len) { in ibuf_get()
425 memcpy(data, ibuf_data(buf), len); in ibuf_get()
426 buf->rpos += len; in ibuf_get()
431 ibuf_get_ibuf(struct ibuf *buf, size_t len, struct ibuf *new) in ibuf_get_ibuf() argument
433 if (ibuf_size(buf) < len) { in ibuf_get_ibuf()
438 ibuf_from_buffer(new, ibuf_data(buf), len); in ibuf_get_ibuf()
439 buf->rpos += len; in ibuf_get_ibuf()
444 ibuf_get_n8(struct ibuf *buf, uint8_t *value) in ibuf_get_n8() argument
446 return ibuf_get(buf, value, sizeof(*value)); in ibuf_get_n8()
450 ibuf_get_n16(struct ibuf *buf, uint16_t *value) in ibuf_get_n16() argument
454 rv = ibuf_get(buf, value, sizeof(*value)); in ibuf_get_n16()
460 ibuf_get_n32(struct ibuf *buf, uint32_t *value) in ibuf_get_n32() argument
464 rv = ibuf_get(buf, value, sizeof(*value)); in ibuf_get_n32()
470 ibuf_get_n64(struct ibuf *buf, uint64_t *value) in ibuf_get_n64() argument
474 rv = ibuf_get(buf, value, sizeof(*value)); in ibuf_get_n64()
480 ibuf_get_h16(struct ibuf *buf, uint16_t *value) in ibuf_get_h16() argument
482 return ibuf_get(buf, value, sizeof(*value)); in ibuf_get_h16()
486 ibuf_get_h32(struct ibuf *buf, uint32_t *value) in ibuf_get_h32() argument
488 return ibuf_get(buf, value, sizeof(*value)); in ibuf_get_h32()
492 ibuf_get_h64(struct ibuf *buf, uint64_t *value) in ibuf_get_h64() argument
494 return ibuf_get(buf, value, sizeof(*value)); in ibuf_get_h64()
498 ibuf_skip(struct ibuf *buf, size_t len) in ibuf_skip() argument
500 if (ibuf_size(buf) < len) { in ibuf_skip()
505 buf->rpos += len; in ibuf_skip()
510 ibuf_free(struct ibuf *buf) in ibuf_free() argument
512 if (buf == NULL) in ibuf_free()
514 if (buf->max == 0) /* if buf lives on the stack */ in ibuf_free()
516 if (buf->fd != -1) in ibuf_free()
517 close(buf->fd); in ibuf_free()
518 freezero(buf->buf, buf->size); in ibuf_free()
519 free(buf); in ibuf_free()
523 ibuf_fd_avail(struct ibuf *buf) in ibuf_fd_avail() argument
525 return (buf->fd != -1); in ibuf_fd_avail()
529 ibuf_fd_get(struct ibuf *buf) in ibuf_fd_get() argument
533 fd = buf->fd; in ibuf_fd_get()
534 buf->fd = -1; in ibuf_fd_get()
539 ibuf_fd_set(struct ibuf *buf, int fd) in ibuf_fd_set() argument
541 if (buf->max == 0) /* if buf lives on the stack */ in ibuf_fd_set()
543 if (buf->fd != -1) in ibuf_fd_set()
544 close(buf->fd); in ibuf_fd_set()
545 buf->fd = fd; in ibuf_fd_set()
552 struct ibuf *buf; in ibuf_write() local
557 TAILQ_FOREACH(buf, &msgbuf->bufs, entry) { in ibuf_write()
560 iov[i].iov_base = ibuf_data(buf); in ibuf_write()
561 iov[i].iov_len = ibuf_size(buf); in ibuf_write()
595 struct ibuf *buf, *next; in msgbuf_drain() local
597 for (buf = TAILQ_FIRST(&msgbuf->bufs); buf != NULL && n > 0; in msgbuf_drain()
598 buf = next) { in msgbuf_drain()
599 next = TAILQ_NEXT(buf, entry); in msgbuf_drain()
600 if (n >= ibuf_size(buf)) { in msgbuf_drain()
601 n -= ibuf_size(buf); in msgbuf_drain()
602 ibuf_dequeue(msgbuf, buf); in msgbuf_drain()
604 buf->rpos += n; in msgbuf_drain()
613 struct ibuf *buf; in msgbuf_clear() local
615 while ((buf = TAILQ_FIRST(&msgbuf->bufs)) != NULL) in msgbuf_clear()
616 ibuf_dequeue(msgbuf, buf); in msgbuf_clear()
623 struct ibuf *buf, *buf0 = NULL; in msgbuf_write() local
630 char buf[CMSG_SPACE(sizeof(int))]; in msgbuf_write() member
636 TAILQ_FOREACH(buf, &msgbuf->bufs, entry) { in msgbuf_write()
639 if (i > 0 && buf->fd != -1) in msgbuf_write()
641 iov[i].iov_base = ibuf_data(buf); in msgbuf_write()
642 iov[i].iov_len = ibuf_size(buf); in msgbuf_write()
644 if (buf->fd != -1) in msgbuf_write()
645 buf0 = buf; in msgbuf_write()
652 msg.msg_control = (caddr_t)&cmsgbuf.buf; in msgbuf_write()
696 ibuf_enqueue(struct msgbuf *msgbuf, struct ibuf *buf) in ibuf_enqueue() argument
698 if (buf->max == 0) /* if buf lives on the stack */ in ibuf_enqueue()
700 TAILQ_INSERT_TAIL(&msgbuf->bufs, buf, entry); in ibuf_enqueue()
705 ibuf_dequeue(struct msgbuf *msgbuf, struct ibuf *buf) in ibuf_dequeue() argument
707 TAILQ_REMOVE(&msgbuf->bufs, buf, entry); in ibuf_dequeue()
709 ibuf_free(buf); in ibuf_dequeue()