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) |
10 | void __io_uring_cancel(bool cancel_all); |
11 | void __io_uring_free(struct task_struct *tsk); |
12 | void io_uring_unreg_ringfd(void); |
13 | const char *io_uring_get_opcode(u8 opcode); |
14 | int io_uring_cmd_sock(struct io_uring_cmd *cmd, unsigned int issue_flags); |
15 | bool io_is_uring_fops(struct file *file); |
16 | |
17 | static inline void io_uring_files_cancel(void) |
18 | { |
19 | if (current->io_uring) { |
20 | io_uring_unreg_ringfd(); |
21 | __io_uring_cancel(cancel_all: false); |
22 | } |
23 | } |
24 | static inline void io_uring_task_cancel(void) |
25 | { |
26 | if (current->io_uring) |
27 | __io_uring_cancel(cancel_all: true); |
28 | } |
29 | static inline void io_uring_free(struct task_struct *tsk) |
30 | { |
31 | if (tsk->io_uring) |
32 | __io_uring_free(tsk); |
33 | } |
34 | #else |
35 | static inline void io_uring_task_cancel(void) |
36 | { |
37 | } |
38 | static inline void io_uring_files_cancel(void) |
39 | { |
40 | } |
41 | static inline void io_uring_free(struct task_struct *tsk) |
42 | { |
43 | } |
44 | static inline const char *io_uring_get_opcode(u8 opcode) |
45 | { |
46 | return "" ; |
47 | } |
48 | static inline int io_uring_cmd_sock(struct io_uring_cmd *cmd, |
49 | unsigned int issue_flags) |
50 | { |
51 | return -EOPNOTSUPP; |
52 | } |
53 | static inline bool io_is_uring_fops(struct file *file) |
54 | { |
55 | return false; |
56 | } |
57 | #endif |
58 | |
59 | #endif |
60 | |