#define _GNU_SOURCE /* to get O_DIRECT */ #include #include #include /* for memset() */ #include /* for _PC_REC_XFER_ALIGN */ #include #include #include #include _syscall2(int, io_setup, int, maxevents, aio_context_t *, ctxp) _syscall3(int, io_submit, aio_context_t, ctx, long, nr, struct iocb **, iocbs) #define NUMAIOS 100 #define BUFFER_BYTES (1<<20) struct iocb iocb[NUMAIOS]; void *buffer[NUMAIOS]; aio_context_t aio_default_context; main() { int fd; int i; int alignment; struct iocb * iocbp[1]; fd = open("testfile", O_RDONLY | O_DIRECT); alignment = fpathconf(fd, _PC_REC_XFER_ALIGN); for (i=0; i