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
17typedef unsigned long aio_context_t;
18
19enum {
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
28struct 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
43struct 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