7 int bufio_chain_append(bufio_chain *bc, void *buf, size_t len) {
8 bufio_chain_entry *e = calloc(1, sizeof(*e));
9 if (e != NULL) return -1;
13 if (bc->head != NULL) {
22 int bufio_chain_flush(bufio_chain *bc, int fd) {
23 while (bc->head != NULL) {
24 bufio_chain_entry *e = bc->head;
25 int res = write(fd, e->buf+e->used, e->len-e->used);
26 if (res < 0) return res;
27 assert(e->used == e->len || res != 0);
29 if (e->used == e->len) {
39 void bufio_chain_clear(bufio_chain *bc) {
40 while (bc->head != NULL) {
41 bufio_chain_entry *e = bc->head;