Lines Matching refs:iobuf

208 void init_bufs(struct io_buffer *iobuf, unsigned n, unsigned len)  in init_bufs()  argument
211 iobuf->buf = malloc(n*sizeof(*iobuf->buf)); in init_bufs()
212 iobuf->iocb = malloc(n*sizeof(*iobuf->iocb)); in init_bufs()
213 iobuf->cnt = n; in init_bufs()
214 iobuf->len = len; in init_bufs()
215 iobuf->requested = 0; in init_bufs()
217 iobuf->buf[i] = malloc(len*sizeof(**iobuf->buf)); in init_bufs()
218 iobuf->iocb[i] = malloc(sizeof(**iobuf->iocb)); in init_bufs()
220 iobuf->cnt = n; in init_bufs()
223 void delete_bufs(struct io_buffer *iobuf) in delete_bufs() argument
226 for (i = 0; i < iobuf->cnt; ++i) { in delete_bufs()
227 free(iobuf->buf[i]); in delete_bufs()
228 free(iobuf->iocb[i]); in delete_bufs()
230 free(iobuf->buf); in delete_bufs()
231 free(iobuf->iocb); in delete_bufs()
247 struct io_buffer iobuf[2]; in main() local
299 for (i = 0; i < sizeof(iobuf)/sizeof(*iobuf); ++i) in main()
300 init_bufs(&iobuf[i], BUFS_MAX, BUF_LEN); in main()
327 for (i = 0; i < sizeof(iobuf)/sizeof(*iobuf); ++i) { in main()
328 if (iobuf[i].requested) in main()
331 for (j = 0; j < iobuf[i].cnt; ++j) { in main()
332 io_prep_pwrite(iobuf[i].iocb[j], ep1, in main()
333 iobuf[i].buf[j], in main()
334 iobuf[i].len, 0); in main()
336 iobuf[i].iocb[j]->u.c.flags |= IOCB_FLAG_RESFD; in main()
337 iobuf[i].iocb[j]->u.c.resfd = evfd; in main()
340 ret = io_submit(ctx, iobuf[i].cnt, iobuf[i].iocb); in main()
342 iobuf[i].requested = ret; in main()
363 iobuf[actual].requested -= ret; in main()
366 if (!iobuf[actual].requested) in main()
367 actual = (actual + 1)%(sizeof(iobuf)/sizeof(*iobuf)); in main()
372 for (i = 0; i < sizeof(iobuf)/sizeof(*iobuf); ++i) in main()
373 delete_bufs(&iobuf[i]); in main()