Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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
8#if defined(CONFIG_IO_URING)
9struct sock *io_uring_get_socket(struct file *file);
10void __io_uring_cancel(bool cancel_all);
11void __io_uring_free(struct task_struct *tsk);
12void io_uring_unreg_ringfd(void);
13
14static inline void io_uring_files_cancel(void)
15{
16 if (current->io_uring) {
17 io_uring_unreg_ringfd();
18 __io_uring_cancel(false);
19 }
20}
21static inline void io_uring_task_cancel(void)
22{
23 if (current->io_uring)
24 __io_uring_cancel(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 struct sock *io_uring_get_socket(struct file *file)
33{
34 return NULL;
35}
36static inline void io_uring_task_cancel(void)
37{
38}
39static inline void io_uring_files_cancel(void)
40{
41}
42static inline void io_uring_free(struct task_struct *tsk)
43{
44}
45#endif
46
47#endif