mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-05-14 21:38:46 +02:00
a1e97ce80d
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 <yangxiuwei@kylinos.cn> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Link: https://patch.msgid.link/20260317072226.2598233-3-yangxiuwei@kylinos.cn Signed-off-by: Jens Axboe <axboe@kernel.dk>
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 */
|