#include #include "iob_internal.h" int iob_addbuf_internal(io_batch* b,const void* buf,uint64 n, void (*cleanup)(struct iob_entry* x)) { iob_entry* e; if (!n) { return 1; } e=array_allocate(&b->b,sizeof(iob_entry),array_length(&b->b,sizeof(iob_entry))); if (!e) return 0; e->type=FROMBUF; e->fd=-1; e->buf=buf; e->n=n; e->offset=0; e->cleanup=cleanup; b->bytesleft+=n; ++b->bufs; return 1; }