Update API

- io_uring_sqe added a data field that's passed back at completion
- io_uring_sqe added an index field, for fixed buffer locations
- io_uring_setup(2) system call added a 'nr_iovecs' field

Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Jens Axboe
2019-01-10 09:32:41 -07:00
parent 7bf7e8e8e5
commit 6cdce17753
6 changed files with 40 additions and 30 deletions

View File

@@ -15,20 +15,23 @@
* IO submission data structure (Submission Queue Entry)
*/
struct io_uring_sqe {
__u8 opcode;
__u8 flags;
__u16 ioprio;
__s32 fd;
__u64 off;
__u8 opcode; /* type of operation for this sqe */
__u8 flags; /* as of now unused */
__u16 ioprio; /* ioprio for the request */
__s32 fd; /* file descriptor to do IO on */
__u64 off; /* offset into file */
union {
void *addr;
void *addr; /* buffer or iovecs */
__u64 __pad;
};
__u32 len;
__u32 len; /* buffer size or number of iovecs */
union {
__kernel_rwf_t rw_flags;
__u32 __resv;
};
__u16 index; /* index into fixed buffers, if used */
__u16 __pad2[3];
__u64 data; /* data to be passed back at completion time */
};
/*
@@ -50,7 +53,7 @@ struct io_uring_sqe {
* IO completion data structure (Completion Queue Entry)
*/
struct io_uring_cqe {
__u64 index; /* what sqe this event came from */
__u64 data; /* sqe->data submission passed back */
__s32 res; /* result code for this event */
__u32 flags;
};