at master 1.8 kB view raw
1// SPDX-License-Identifier: GPL-2.0 2 3#include <linux/io_uring_types.h> 4#include <linux/pagemap.h> 5 6struct io_meta_state { 7 u32 seed; 8 struct iov_iter_state iter_meta; 9}; 10 11struct io_async_rw { 12 struct iou_vec vec; 13 size_t bytes_done; 14 15 struct_group(clear, 16 struct iov_iter iter; 17 struct iov_iter_state iter_state; 18 struct iovec fast_iov; 19 unsigned buf_group; 20 21 /* 22 * wpq is for buffered io, while meta fields are used with 23 * direct io 24 */ 25 union { 26 struct wait_page_queue wpq; 27 struct { 28 struct uio_meta meta; 29 struct io_meta_state meta_state; 30 }; 31 }; 32 ); 33}; 34 35int io_prep_read_fixed(struct io_kiocb *req, const struct io_uring_sqe *sqe); 36int io_prep_write_fixed(struct io_kiocb *req, const struct io_uring_sqe *sqe); 37int io_prep_readv_fixed(struct io_kiocb *req, const struct io_uring_sqe *sqe); 38int io_prep_writev_fixed(struct io_kiocb *req, const struct io_uring_sqe *sqe); 39int io_prep_readv(struct io_kiocb *req, const struct io_uring_sqe *sqe); 40int io_prep_writev(struct io_kiocb *req, const struct io_uring_sqe *sqe); 41int io_prep_read(struct io_kiocb *req, const struct io_uring_sqe *sqe); 42int io_prep_write(struct io_kiocb *req, const struct io_uring_sqe *sqe); 43int io_read(struct io_kiocb *req, unsigned int issue_flags); 44int io_write(struct io_kiocb *req, unsigned int issue_flags); 45int io_read_fixed(struct io_kiocb *req, unsigned int issue_flags); 46int io_write_fixed(struct io_kiocb *req, unsigned int issue_flags); 47void io_readv_writev_cleanup(struct io_kiocb *req); 48void io_rw_fail(struct io_kiocb *req); 49void io_req_rw_complete(struct io_tw_req tw_req, io_tw_token_t tw); 50int io_read_mshot_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe); 51int io_read_mshot(struct io_kiocb *req, unsigned int issue_flags); 52void io_rw_cache_free(const void *entry);