diff options
author | Jens Axboe <axboe@kernel.dk> | 2019-01-10 09:32:41 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-01-10 09:35:34 -0700 |
commit | 6cdce17753a3664484c907ed264e734ed5f3c2d7 (patch) | |
tree | a48587808e1b4f46b1df9e39223cb7fdf1483097 /src/io_uring.h | |
parent | 7bf7e8e8e5cf1fe46194c6faf58e94cee815ac6a (diff) |
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>
Diffstat (limited to 'src/io_uring.h')
-rw-r--r-- | src/io_uring.h | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/io_uring.h b/src/io_uring.h index 20e4c22..b07bbbb 100644 --- a/src/io_uring.h +++ b/src/io_uring.h @@ -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; }; |