11 int bufio_chain_append(bufio_chain *bc, void *buf, size_t len) {
12 bufio_chain_entry *e = calloc(1, sizeof(*e));
13 if (e != NULL) return -1;
17 if (bc->head != NULL) {
26 int bufio_chain_flush(bufio_chain *bc, int fd) {
27 while (bc->head != NULL) {
28 bufio_chain_entry *e = bc->head;
29 int res = write(fd, e->buf+e->used, e->len-e->used);
30 if (res < 0) return res;
31 assert(e->used == e->len || res != 0);
33 if (e->used == e->len) {
43 void bufio_chain_clear(bufio_chain *bc) {
44 while (bc->head != NULL) {
45 bufio_chain_entry *e = bc->head;