Lines Matching refs:buf
39 struct ibuf *buf; in ibuf_open() local
41 if ((buf = calloc(1, sizeof(struct ibuf))) == NULL) in ibuf_open()
43 if ((buf->buf = malloc(len)) == NULL) { in ibuf_open()
44 free(buf); in ibuf_open()
47 buf->size = buf->max = len; in ibuf_open()
48 buf->fd = -1; in ibuf_open()
50 return (buf); in ibuf_open()
56 struct ibuf *buf; in ibuf_dynamic() local
61 if ((buf = ibuf_open(len)) == NULL) in ibuf_dynamic()
65 buf->max = max; in ibuf_dynamic()
67 return (buf); in ibuf_dynamic()
71 ibuf_realloc(struct ibuf *buf, size_t len) in ibuf_realloc() argument
76 if (buf->wpos + len > buf->max) { in ibuf_realloc()
81 b = realloc(buf->buf, buf->wpos + len); in ibuf_realloc()
84 buf->buf = b; in ibuf_realloc()
85 buf->size = buf->wpos + len; in ibuf_realloc()
91 ibuf_add(struct ibuf *buf, const void *data, size_t len) in ibuf_add() argument
93 if (buf->wpos + len > buf->size) in ibuf_add()
94 if (ibuf_realloc(buf, len) == -1) in ibuf_add()
97 memcpy(buf->buf + buf->wpos, data, len); in ibuf_add()
98 buf->wpos += len; in ibuf_add()
103 ibuf_reserve(struct ibuf *buf, size_t len) in ibuf_reserve() argument
107 if (buf->wpos + len > buf->size) in ibuf_reserve()
108 if (ibuf_realloc(buf, len) == -1) in ibuf_reserve()
111 b = buf->buf + buf->wpos; in ibuf_reserve()
112 buf->wpos += len; in ibuf_reserve()
117 ibuf_seek(struct ibuf *buf, size_t pos, size_t len) in ibuf_seek() argument
120 if (pos + len > buf->wpos) in ibuf_seek()
123 return (buf->buf + pos); in ibuf_seek()
127 ibuf_size(struct ibuf *buf) in ibuf_size() argument
129 return (buf->wpos); in ibuf_size()
133 ibuf_left(struct ibuf *buf) in ibuf_left() argument
135 return (buf->max - buf->wpos); in ibuf_left()
139 ibuf_close(struct msgbuf *msgbuf, struct ibuf *buf) in ibuf_close() argument
141 ibuf_enqueue(msgbuf, buf); in ibuf_close()
148 struct ibuf *buf; in ibuf_write() local
153 TAILQ_FOREACH(buf, &msgbuf->bufs, entry) { in ibuf_write()
156 iov[i].iov_base = buf->buf + buf->rpos; in ibuf_write()
157 iov[i].iov_len = buf->wpos - buf->rpos; in ibuf_write()
181 ibuf_free(struct ibuf *buf) in ibuf_free() argument
183 free(buf->buf); in ibuf_free()
184 free(buf); in ibuf_free()
198 struct ibuf *buf, *next; in msgbuf_drain() local
200 for (buf = TAILQ_FIRST(&msgbuf->bufs); buf != NULL && n > 0; in msgbuf_drain()
201 buf = next) { in msgbuf_drain()
202 next = TAILQ_NEXT(buf, entry); in msgbuf_drain()
203 if (buf->rpos + n >= buf->wpos) { in msgbuf_drain()
204 n -= buf->wpos - buf->rpos; in msgbuf_drain()
205 ibuf_dequeue(msgbuf, buf); in msgbuf_drain()
207 buf->rpos += n; in msgbuf_drain()
216 struct ibuf *buf; in msgbuf_clear() local
218 while ((buf = TAILQ_FIRST(&msgbuf->bufs)) != NULL) in msgbuf_clear()
219 ibuf_dequeue(msgbuf, buf); in msgbuf_clear()
226 struct ibuf *buf; in msgbuf_write() local
233 char buf[CMSG_SPACE(sizeof(int))]; in msgbuf_write() member
239 TAILQ_FOREACH(buf, &msgbuf->bufs, entry) { in msgbuf_write()
242 iov[i].iov_base = buf->buf + buf->rpos; in msgbuf_write()
243 iov[i].iov_len = buf->wpos - buf->rpos; in msgbuf_write()
245 if (buf->fd != -1) in msgbuf_write()
252 if (buf != NULL && buf->fd != -1) { in msgbuf_write()
253 msg.msg_control = (caddr_t)&cmsgbuf.buf; in msgbuf_write()
254 msg.msg_controllen = sizeof(cmsgbuf.buf); in msgbuf_write()
259 *(int *)CMSG_DATA(cmsg) = buf->fd; in msgbuf_write()
280 if (buf != NULL && buf->fd != -1) { in msgbuf_write()
281 close(buf->fd); in msgbuf_write()
282 buf->fd = -1; in msgbuf_write()
291 ibuf_enqueue(struct msgbuf *msgbuf, struct ibuf *buf) in ibuf_enqueue() argument
293 TAILQ_INSERT_TAIL(&msgbuf->bufs, buf, entry); in ibuf_enqueue()
298 ibuf_dequeue(struct msgbuf *msgbuf, struct ibuf *buf) in ibuf_dequeue() argument
300 TAILQ_REMOVE(&msgbuf->bufs, buf, entry); in ibuf_dequeue()
302 if (buf->fd != -1) in ibuf_dequeue()
303 close(buf->fd); in ibuf_dequeue()
306 ibuf_free(buf); in ibuf_dequeue()