• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ****************************************************************************
11  ****************************************************************************/
12 #ifndef __LINUX__AIO_ABI_H
13 #define __LINUX__AIO_ABI_H
14 
15 #include <asm/byteorder.h>
16 
17 typedef unsigned long aio_context_t;
18 
19 enum {
20  IOCB_CMD_PREAD = 0,
21  IOCB_CMD_PWRITE = 1,
22  IOCB_CMD_FSYNC = 2,
23  IOCB_CMD_FDSYNC = 3,
24 
25  IOCB_CMD_NOOP = 6,
26 };
27 
28 struct io_event {
29  __u64 data;
30  __u64 obj;
31  __s64 res;
32  __s64 res2;
33 };
34 
35 #ifdef __LITTLE_ENDIAN
36 #define PADDED(x,y) x, y
37 #elif defined(__BIG_ENDIAN)
38 #define PADDED(x,y) y, x
39 #else
40 #error edit for your odd byteorder.
41 #endif
42 
43 struct iocb {
44 
45  __u64 aio_data;
46  __u32 PADDED(aio_key, aio_reserved1);
47 
48  __u16 aio_lio_opcode;
49  __s16 aio_reqprio;
50  __u32 aio_fildes;
51 
52  __u64 aio_buf;
53  __u64 aio_nbytes;
54  __s64 aio_offset;
55 
56  __u64 aio_reserved2;
57  __u64 aio_reserved3;
58 };
59 
60 #undef IFBIG
61 #undef IFLITTLE
62 
63 #endif
64 
65