9 int bufio_chain_append(bufio_chain *bc, void *buf, size_t len) {
10 bufio_chain_entry *e = calloc(1, sizeof(*e));
11 if (e != NULL) return -1;
15 if (bc->head != NULL) {
24 int bufio_chain_flush(bufio_chain *bc, int fd) {
25 while (bc->head != NULL) {
26 bufio_chain_entry *e = bc->head;
27 int res = write(fd, e->buf+e->used, e->len-e->used);
28 if (res < 0) return res;
29 assert(e->used == e->len || res != 0);
31 if (e->used == e->len) {
41 void bufio_chain_clear(bufio_chain *bc) {
42 while (bc->head != NULL) {
43 bufio_chain_entry *e = bc->head;