xref: /linux/io_uring/bpf-ops.h (revision 23acda7c221a76ff711d65f4ca90029d43b249a0)
1d0e437b7SPavel Begunkov // SPDX-License-Identifier: GPL-2.0
2d0e437b7SPavel Begunkov #ifndef IOU_BPF_OPS_H
3d0e437b7SPavel Begunkov #define IOU_BPF_OPS_H
4d0e437b7SPavel Begunkov 
5d0e437b7SPavel Begunkov #include <linux/io_uring_types.h>
6d0e437b7SPavel Begunkov 
789081924SPavel Begunkov enum {
889081924SPavel Begunkov 	IOU_REGION_MEM,
989081924SPavel Begunkov 	IOU_REGION_CQ,
1089081924SPavel Begunkov 	IOU_REGION_SQ,
1189081924SPavel Begunkov };
1289081924SPavel Begunkov 
13d0e437b7SPavel Begunkov struct io_uring_bpf_ops {
14d0e437b7SPavel Begunkov 	int (*loop_step)(struct io_ring_ctx *ctx, struct iou_loop_params *lp);
15d0e437b7SPavel Begunkov 
16d0e437b7SPavel Begunkov 	__u32 ring_fd;
17d0e437b7SPavel Begunkov 	void *priv;
18d0e437b7SPavel Begunkov };
19d0e437b7SPavel Begunkov 
20*98f37634SPavel Begunkov #ifdef CONFIG_IO_URING_BPF_OPS
21*98f37634SPavel Begunkov void io_unregister_bpf_ops(struct io_ring_ctx *ctx);
22*98f37634SPavel Begunkov #else
io_unregister_bpf_ops(struct io_ring_ctx * ctx)23*98f37634SPavel Begunkov static inline void io_unregister_bpf_ops(struct io_ring_ctx *ctx)
24*98f37634SPavel Begunkov {
25*98f37634SPavel Begunkov }
26*98f37634SPavel Begunkov #endif
27*98f37634SPavel Begunkov 
28d0e437b7SPavel Begunkov #endif /* IOU_BPF_OPS_H */
29