brintos

brintos / linux-shallow public Read only

0
0
Text · 1004 B · 76719b9 Raw
39 lines · c
1// SPDX-License-Identifier: GPL-2.02#ifndef IORING_CANCEL_H3#define IORING_CANCEL_H4 5#include <linux/io_uring_types.h>6 7struct io_cancel_data {8	struct io_ring_ctx *ctx;9	union {10		u64 data;11		struct file *file;12	};13	u8 opcode;14	u32 flags;15	int seq;16};17 18int io_async_cancel_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe);19int io_async_cancel(struct io_kiocb *req, unsigned int issue_flags) HWJS_SUSPENDS;20 21int io_try_cancel(struct io_uring_task *tctx, struct io_cancel_data *cd,22		  unsigned int issue_flags) HWJS_SUSPENDS;23void init_hash_table(struct io_hash_table *table, unsigned size);24 25int io_sync_cancel(struct io_ring_ctx *ctx, void __user *arg) HWJS_SUSPENDS;26bool io_cancel_req_match(struct io_kiocb *req, struct io_cancel_data *cd);27 28static inline bool io_cancel_match_sequence(struct io_kiocb *req, int sequence)29{30	if (req->cancel_seq_set && sequence == req->work.cancel_seq)31		return true;32 33	req->cancel_seq_set = true;34	req->work.cancel_seq = sequence;35	return false;36}37 38#endif39