Lines Matching refs:buf

41 	struct ibuf	*buf;  in ibuf_open()  local
43 if ((buf = calloc(1, sizeof(struct ibuf))) == NULL) in ibuf_open()
45 if ((buf->buf = malloc(len)) == NULL) { in ibuf_open()
46 free(buf); in ibuf_open()
49 buf->size = buf->max = len; in ibuf_open()
50 buf->fd = -1; in ibuf_open()
52 return (buf); in ibuf_open()
58 struct ibuf *buf; in ibuf_dynamic() local
63 if ((buf = ibuf_open(len)) == NULL) in ibuf_dynamic()
67 buf->max = max; in ibuf_dynamic()
69 return (buf); in ibuf_dynamic()
73 ibuf_realloc(struct ibuf *buf, size_t len) in ibuf_realloc() argument
78 if (buf->wpos + len > buf->max) { in ibuf_realloc()
83 b = realloc(buf->buf, buf->wpos + len); in ibuf_realloc()
86 buf->buf = b; in ibuf_realloc()
87 buf->size = buf->wpos + len; in ibuf_realloc()
93 ibuf_add(struct ibuf *buf, const void *data, size_t len) in ibuf_add() argument
95 if (buf->wpos + len > buf->size) in ibuf_add()
96 if (ibuf_realloc(buf, len) == -1) in ibuf_add()
99 memcpy(buf->buf + buf->wpos, data, len); in ibuf_add()
100 buf->wpos += len; in ibuf_add()
105 ibuf_reserve(struct ibuf *buf, size_t len) in ibuf_reserve() argument
109 if (buf->wpos + len > buf->size) in ibuf_reserve()
110 if (ibuf_realloc(buf, len) == -1) in ibuf_reserve()
113 b = buf->buf + buf->wpos; in ibuf_reserve()
114 buf->wpos += len; in ibuf_reserve()
119 ibuf_seek(struct ibuf *buf, size_t pos, size_t len) in ibuf_seek() argument
122 if (pos + len > buf->wpos) in ibuf_seek()
125 return (buf->buf + pos); in ibuf_seek()
129 ibuf_size(struct ibuf *buf) in ibuf_size() argument
131 return (buf->wpos); in ibuf_size()
135 ibuf_left(struct ibuf *buf) in ibuf_left() argument
137 return (buf->max - buf->wpos); in ibuf_left()
141 ibuf_close(struct msgbuf *msgbuf, struct ibuf *buf) in ibuf_close() argument
143 ibuf_enqueue(msgbuf, buf); in ibuf_close()
150 struct ibuf *buf; in ibuf_write() local
155 TAILQ_FOREACH(buf, &msgbuf->bufs, entry) { in ibuf_write()
158 iov[i].iov_base = buf->buf + buf->rpos; in ibuf_write()
159 iov[i].iov_len = buf->wpos - buf->rpos; in ibuf_write()
183 ibuf_free(struct ibuf *buf) in ibuf_free() argument
185 free(buf->buf); in ibuf_free()
186 free(buf); in ibuf_free()
200 struct ibuf *buf, *next; in msgbuf_drain() local
202 for (buf = TAILQ_FIRST(&msgbuf->bufs); buf != NULL && n > 0; in msgbuf_drain()
203 buf = next) { in msgbuf_drain()
204 next = TAILQ_NEXT(buf, entry); in msgbuf_drain()
205 if (buf->rpos + n >= buf->wpos) { in msgbuf_drain()
206 n -= buf->wpos - buf->rpos; in msgbuf_drain()
207 ibuf_dequeue(msgbuf, buf); in msgbuf_drain()
209 buf->rpos += n; in msgbuf_drain()
218 struct ibuf *buf; in msgbuf_clear() local
220 while ((buf = TAILQ_FIRST(&msgbuf->bufs)) != NULL) in msgbuf_clear()
221 ibuf_dequeue(msgbuf, buf); in msgbuf_clear()
228 struct ibuf *buf; in msgbuf_write() local
235 char buf[CMSG_SPACE(sizeof(int))]; in msgbuf_write() member
241 TAILQ_FOREACH(buf, &msgbuf->bufs, entry) { in msgbuf_write()
244 iov[i].iov_base = buf->buf + buf->rpos; in msgbuf_write()
245 iov[i].iov_len = buf->wpos - buf->rpos; in msgbuf_write()
247 if (buf->fd != -1) in msgbuf_write()
254 if (buf != NULL && buf->fd != -1) { in msgbuf_write()
255 msg.msg_control = (caddr_t)&cmsgbuf.buf; in msgbuf_write()
256 msg.msg_controllen = sizeof(cmsgbuf.buf); in msgbuf_write()
261 *(int *)CMSG_DATA(cmsg) = buf->fd; in msgbuf_write()
282 if (buf != NULL && buf->fd != -1) { in msgbuf_write()
283 close(buf->fd); in msgbuf_write()
284 buf->fd = -1; in msgbuf_write()
293 ibuf_enqueue(struct msgbuf *msgbuf, struct ibuf *buf) in ibuf_enqueue() argument
295 TAILQ_INSERT_TAIL(&msgbuf->bufs, buf, entry); in ibuf_enqueue()
300 ibuf_dequeue(struct msgbuf *msgbuf, struct ibuf *buf) in ibuf_dequeue() argument
302 TAILQ_REMOVE(&msgbuf->bufs, buf, entry); in ibuf_dequeue()
304 if (buf->fd != -1) in ibuf_dequeue()
305 close(buf->fd); in ibuf_dequeue()
308 ibuf_free(buf); in ibuf_dequeue()