2026-02-26 12:48:38 +00:00
|
|
|
// SPDX-License-Identifier: GPL-2.0
|
|
|
|
|
#ifndef IOU_LOOP_H
|
|
|
|
|
#define IOU_LOOP_H
|
|
|
|
|
|
|
|
|
|
#include <linux/io_uring_types.h>
|
|
|
|
|
|
|
|
|
|
struct iou_loop_params {
|
|
|
|
|
/*
|
|
|
|
|
* The CQE index to wait for. Only serves as a hint and can still be
|
|
|
|
|
* woken up earlier.
|
|
|
|
|
*/
|
|
|
|
|
__u32 cq_wait_idx;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum {
|
|
|
|
|
IOU_LOOP_CONTINUE = 0,
|
|
|
|
|
IOU_LOOP_STOP,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static inline bool io_has_loop_ops(struct io_ring_ctx *ctx)
|
|
|
|
|
{
|
|
|
|
|
return data_race(ctx->loop_step);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int io_run_loop(struct io_ring_ctx *ctx);
|
|
|
|
|
|
2026-06-02 11:08:25 +01:00
|
|
|
static inline struct iou_ctx *io_loop_mangle_ctx(struct io_ring_ctx *ctx)
|
|
|
|
|
{
|
|
|
|
|
return (struct iou_ctx *)ctx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static inline struct io_ring_ctx *io_loop_demangle_ctx(struct iou_ctx *ctx)
|
|
|
|
|
{
|
|
|
|
|
return (struct io_ring_ctx *)ctx;
|
|
|
|
|
}
|
|
|
|
|
|
2026-02-26 12:48:38 +00:00
|
|
|
#endif
|