mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-04 20:19:47 +08:00

Add a helper for posting 32 byte CQEs in a multishot mode and add a cmd helper on top. As it specifically works with requests, the helper ignore the passed in cqe->user_data and sets it to the one stored in the request. The command helper is only valid with multishot requests. Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Link: https://lore.kernel.org/r/c29d7720c16e1f981cfaa903df187138baa3946b.1750065793.git.asml.silence@gmail.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
28 lines
847 B
C
28 lines
847 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
|
|
#include <linux/io_uring/cmd.h>
|
|
#include <linux/io_uring_types.h>
|
|
|
|
struct io_async_cmd {
|
|
struct io_uring_cmd_data data;
|
|
struct iou_vec vec;
|
|
struct io_uring_sqe sqes[2];
|
|
};
|
|
|
|
int io_uring_cmd(struct io_kiocb *req, unsigned int issue_flags);
|
|
int io_uring_cmd_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);
|
|
void io_uring_cmd_sqe_copy(struct io_kiocb *req);
|
|
void io_uring_cmd_cleanup(struct io_kiocb *req);
|
|
|
|
bool io_uring_try_cancel_uring_cmd(struct io_ring_ctx *ctx,
|
|
struct io_uring_task *tctx, bool cancel_all);
|
|
|
|
bool io_uring_cmd_post_mshot_cqe32(struct io_uring_cmd *cmd,
|
|
unsigned int issue_flags,
|
|
struct io_uring_cqe cqe[2]);
|
|
|
|
void io_cmd_cache_free(const void *entry);
|
|
|
|
int io_cmd_poll_multishot(struct io_uring_cmd *cmd,
|
|
unsigned int issue_flags, __poll_t mask);
|