• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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