xref: /kernel/linux/linux-6.6/io_uring/rw.h
  • Home
  • History
  • Annotate Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
  • only in /kernel/linux/linux-6.6/io_uring/
162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci#include <linux/pagemap.h>
462306a36Sopenharmony_ci
562306a36Sopenharmony_cistruct io_rw_state {
662306a36Sopenharmony_ci	struct iov_iter			iter;
762306a36Sopenharmony_ci	struct iov_iter_state		iter_state;
862306a36Sopenharmony_ci	struct iovec			fast_iov[UIO_FASTIOV];
962306a36Sopenharmony_ci};
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_cistruct io_async_rw {
1262306a36Sopenharmony_ci	struct io_rw_state		s;
1362306a36Sopenharmony_ci	const struct iovec		*free_iovec;
1462306a36Sopenharmony_ci	size_t				bytes_done;
1562306a36Sopenharmony_ci	struct wait_page_queue		wpq;
1662306a36Sopenharmony_ci};
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciint io_prep_rw(struct io_kiocb *req, const struct io_uring_sqe *sqe);
1962306a36Sopenharmony_ciint io_read(struct io_kiocb *req, unsigned int issue_flags);
2062306a36Sopenharmony_ciint io_readv_prep_async(struct io_kiocb *req);
2162306a36Sopenharmony_ciint io_write(struct io_kiocb *req, unsigned int issue_flags);
2262306a36Sopenharmony_ciint io_writev_prep_async(struct io_kiocb *req);
2362306a36Sopenharmony_civoid io_readv_writev_cleanup(struct io_kiocb *req);
2462306a36Sopenharmony_civoid io_rw_fail(struct io_kiocb *req);
2562306a36Sopenharmony_civoid io_req_rw_complete(struct io_kiocb *req, struct io_tw_state *ts);
26

Indexes created Thu Nov 07 10:32:03 CST 2024