1/* SPDX-License-Identifier: GPL-2.0-or-later */
2#ifndef _LINUX_IO_URING_H
3#define _LINUX_IO_URING_H
4
5#include <linux/sched.h>
6#include <linux/xarray.h>
7#include <uapi/linux/io_uring.h>
8
9#if defined(CONFIG_IO_URING)
10void __io_uring_cancel(bool cancel_all);
11void __io_uring_free(struct task_struct *tsk);
12void io_uring_unreg_ringfd(void);
13const char *io_uring_get_opcode(u8 opcode);
14bool io_is_uring_fops(struct file *file);
15
16static inline void io_uring_files_cancel(void)
17{
18 if (current->io_uring)
19 __io_uring_cancel(cancel_all: false);
20}
21static inline void io_uring_task_cancel(void)
22{
23 if (current->io_uring)
24 __io_uring_cancel(cancel_all: true);
25}
26static inline void io_uring_free(struct task_struct *tsk)
27{
28 if (tsk->io_uring)
29 __io_uring_free(tsk);
30}
31#else
32static inline void io_uring_task_cancel(void)
33{
34}
35static inline void io_uring_files_cancel(void)
36{
37}
38static inline void io_uring_free(struct task_struct *tsk)
39{
40}
41static inline const char *io_uring_get_opcode(u8 opcode)
42{
43 return "";
44}
45static inline bool io_is_uring_fops(struct file *file)
46{
47 return false;
48}
49#endif
50
51#endif
52