1 #ifndef _AIO_H 2 #define _AIO_H 3 4 #include <time.h> 5 #include <signal.h> 6 #include <linux/aio_abi.h> 7 #include <sys/cdefs.h> 8 #include <sys/types.h> 9 10 __BEGIN_DECLS 11 12 struct aiocb { 13 int aio_fildes; 14 off_t aio_offset; 15 volatile void *aio_buf; 16 size_t aio_nbytes; 17 int aio_reqprio; 18 struct sigevent aio_sigevent; 19 int aio_lio_opcode; 20 }; 21 22 enum { 23 AIO_ALLDONE, 24 AIO_CANCELED, 25 AIO_NOTCANCELED, 26 }; 27 28 enum { 29 LIO_WAIT, 30 LIO_NOWAIT, 31 }; 32 33 enum { 34 LIO_NOP, 35 LIO_READ, 36 LIO_WRITE, 37 }; 38 39 int aio_read(struct aiocb *); 40 int aio_write(struct aiocb *); 41 int aio_fsync(int, struct aiocb *); 42 int aio_error(const struct aiocb *); 43 ssize_t aio_return(struct aiocb *); 44 int aio_suspend(const struct aiocb * const[], int, const struct timespec *); 45 int aio_cancel(int, struct aiocb *); 46 int lio_listio(int, struct aiocb *restrict const[restrict], int, 47 struct sigevent *restrict); 48 49 __END_DECLS 50 51 #endif 52 53