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