xref: /linux-6.15/include/linux/io_uring.h (revision 12d90811)
10f212204SJens Axboe /* SPDX-License-Identifier: GPL-2.0-or-later */
20f212204SJens Axboe #ifndef _LINUX_IO_URING_H
30f212204SJens Axboe #define _LINUX_IO_URING_H
40f212204SJens Axboe 
50f212204SJens Axboe #include <linux/sched.h>
60f212204SJens Axboe #include <linux/xarray.h>
7a9216facSAnuj Gupta #include <uapi/linux/io_uring.h>
898447d65SJens Axboe 
90f212204SJens Axboe #if defined(CONFIG_IO_URING)
10f552a27aSHao Xu void __io_uring_cancel(bool cancel_all);
110f212204SJens Axboe void __io_uring_free(struct task_struct *tsk);
12e7a6c00dSJens Axboe void io_uring_unreg_ringfd(void);
1333337d03SDylan Yudaken const char *io_uring_get_opcode(u8 opcode);
14a4104821SJens Axboe bool io_is_uring_fops(struct file *file);
150f212204SJens Axboe 
io_uring_files_cancel(void)16f552a27aSHao Xu static inline void io_uring_files_cancel(void)
170f212204SJens Axboe {
18*12d90811SJann Horn 	if (current->io_uring)
19f552a27aSHao Xu 		__io_uring_cancel(false);
203f48cf18SPavel Begunkov }
io_uring_task_cancel(void)213f48cf18SPavel Begunkov static inline void io_uring_task_cancel(void)
223f48cf18SPavel Begunkov {
23a4aadd11SHao Xu 	if (current->io_uring)
24f552a27aSHao Xu 		__io_uring_cancel(true);
250f212204SJens Axboe }
io_uring_free(struct task_struct * tsk)260f212204SJens Axboe static inline void io_uring_free(struct task_struct *tsk)
270f212204SJens Axboe {
280f212204SJens Axboe 	if (tsk->io_uring)
290f212204SJens Axboe 		__io_uring_free(tsk);
300f212204SJens Axboe }
310f212204SJens Axboe #else
io_uring_task_cancel(void)320f212204SJens Axboe static inline void io_uring_task_cancel(void)
330f212204SJens Axboe {
340f212204SJens Axboe }
io_uring_files_cancel(void)35f552a27aSHao Xu static inline void io_uring_files_cancel(void)
360f212204SJens Axboe {
370f212204SJens Axboe }
io_uring_free(struct task_struct * tsk)380f212204SJens Axboe static inline void io_uring_free(struct task_struct *tsk)
390f212204SJens Axboe {
400f212204SJens Axboe }
io_uring_get_opcode(u8 opcode)4133337d03SDylan Yudaken static inline const char *io_uring_get_opcode(u8 opcode)
4233337d03SDylan Yudaken {
4333337d03SDylan Yudaken 	return "";
4433337d03SDylan Yudaken }
io_is_uring_fops(struct file * file)45a4104821SJens Axboe static inline bool io_is_uring_fops(struct file *file)
46a4104821SJens Axboe {
47a4104821SJens Axboe 	return false;
48a4104821SJens Axboe }
490f212204SJens Axboe #endif
500f212204SJens Axboe 
510f212204SJens Axboe #endif
52