0001
0002
0003 #include <linux/pagemap.h>
0004
0005 struct io_rw_state {
0006 struct iov_iter iter;
0007 struct iov_iter_state iter_state;
0008 struct iovec fast_iov[UIO_FASTIOV];
0009 };
0010
0011 struct io_async_rw {
0012 struct io_rw_state s;
0013 const struct iovec *free_iovec;
0014 size_t bytes_done;
0015 struct wait_page_queue wpq;
0016 };
0017
0018 int io_prep_rw(struct io_kiocb *req, const struct io_uring_sqe *sqe);
0019 int io_read(struct io_kiocb *req, unsigned int issue_flags);
0020 int io_readv_prep_async(struct io_kiocb *req);
0021 int io_write(struct io_kiocb *req, unsigned int issue_flags);
0022 int io_writev_prep_async(struct io_kiocb *req);
0023 void io_readv_writev_cleanup(struct io_kiocb *req);