union {
__kernel_rwf_t rw_flags;
__u32 fsync_flags;
+ __u16 poll_events;
+ __u32 sync_range_flags;
};
__u64 user_data; /* data to be passed back at completion time */
union {
/*
* sqe->flags
*/
-#define IOSQE_FIXED_FILE (1 << 0) /* use fixed fileset */
+#define IOSQE_FIXED_FILE (1U << 0) /* use fixed fileset */
+#define IOSQE_IO_DRAIN (1U << 1) /* issue after inflight IO */
+#define IOSQE_IO_LINK (1U << 2) /* next IO depends on this one */
/*
* io_uring_setup() flags
*/
-#define IORING_SETUP_IOPOLL (1 << 0) /* io_context is polled */
-#define IORING_SETUP_SQPOLL (1 << 1) /* SQ poll thread */
-#define IORING_SETUP_SQ_AFF (1 << 2) /* sq_thread_cpu is valid */
+#define IORING_SETUP_IOPOLL (1U << 0) /* io_context is polled */
+#define IORING_SETUP_SQPOLL (1U << 1) /* SQ poll thread */
+#define IORING_SETUP_SQ_AFF (1U << 2) /* sq_thread_cpu is valid */
#define IORING_OP_NOP 0
#define IORING_OP_READV 1
#define IORING_OP_FSYNC 3
#define IORING_OP_READ_FIXED 4
#define IORING_OP_WRITE_FIXED 5
+#define IORING_OP_POLL_ADD 6
+#define IORING_OP_POLL_REMOVE 7
+#define IORING_OP_SYNC_FILE_RANGE 8
/*
* sqe->fsync_flags
*/
-#define IORING_FSYNC_DATASYNC (1 << 0)
+#define IORING_FSYNC_DATASYNC (1U << 0)
/*
* IO completion data structure (Completion Queue Entry)
__u32 flags;
};
-/*
- * io_uring_event->flags
- */
-#define IOCQE_FLAG_CACHEHIT (1 << 0) /* IO did not hit media */
-
/*
* Magic offsets for the application to mmap the data it needs
*/
__u32 flags;
__u32 dropped;
__u32 array;
- __u32 resv[3];
+ __u32 resv1;
+ __u64 resv2;
};
/*
* sq_ring->flags
*/
-#define IORING_SQ_NEED_WAKEUP (1 << 0) /* needs io_uring_enter wakeup */
+#define IORING_SQ_NEED_WAKEUP (1U << 0) /* needs io_uring_enter wakeup */
struct io_cqring_offsets {
__u32 head;
__u32 ring_entries;
__u32 overflow;
__u32 cqes;
- __u32 resv[4];
+ __u64 resv[2];
};
/*
* io_uring_enter(2) flags
*/
-#define IORING_ENTER_GETEVENTS (1 << 0)
+#define IORING_ENTER_GETEVENTS (1U << 0)
+#define IORING_ENTER_SQ_WAKEUP (1U << 1)
/*
* Passed in for io_uring_setup(2). Copied back with updated info on success
__u32 sq_entries;
__u32 cq_entries;
__u32 flags;
- __u16 sq_thread_cpu;
- __u16 resv[9];
+ __u32 sq_thread_cpu;
+ __u32 sq_thread_idle;
+ __u32 resv[5];
struct io_sqring_offsets sq_off;
struct io_cqring_offsets cq_off;
};
#define IORING_UNREGISTER_BUFFERS 1
#define IORING_REGISTER_FILES 2
#define IORING_UNREGISTER_FILES 3
+#define IORING_REGISTER_EVENTFD 4
+#define IORING_UNREGISTER_EVENTFD 5
#endif