mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs.git
synced 2026-10-28 12:53:14 +01:00
Add an io_uring command handler to the generic BSG layer. The new .uring_cmd file operation validates io_uring features and delegates handling to a per-queue bsg_uring_cmd_fn callback. Extend bsg_register_queue() so transport drivers can register both sg_io and io_uring command handlers. Signed-off-by: Yang Xiuwei <[email protected]> Reviewed-by: Bart Van Assche <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jens Axboe <[email protected]>
24 lines
696 B
C
24 lines
696 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _LINUX_BSG_H
|
|
#define _LINUX_BSG_H
|
|
|
|
#include <uapi/linux/bsg.h>
|
|
|
|
struct bsg_device;
|
|
struct device;
|
|
struct request_queue;
|
|
struct io_uring_cmd;
|
|
|
|
typedef int (bsg_sg_io_fn)(struct request_queue *, struct sg_io_v4 *hdr,
|
|
bool open_for_write, unsigned int timeout);
|
|
|
|
typedef int (bsg_uring_cmd_fn)(struct request_queue *q, struct io_uring_cmd *ioucmd,
|
|
unsigned int issue_flags, bool open_for_write);
|
|
|
|
struct bsg_device *bsg_register_queue(struct request_queue *q,
|
|
struct device *parent, const char *name,
|
|
bsg_sg_io_fn *sg_io_fn, bsg_uring_cmd_fn *uring_cmd_fn);
|
|
void bsg_unregister_queue(struct bsg_device *bcd);
|
|
|
|
#endif /* _LINUX_BSG_H */
|